home *** CD-ROM | disk | FTP | other *** search
MacBinary | 1991-10-30 | 13.8 KB | [TEXT/MPS ] |
open in:
MacOS 8.1
|
Win98
|
DOS
view JSON data
|
view as text
This file was processed as: MacBinary
(archive/macBinary).
You can browse this item here: serial.c
Confidence | Program | Detection | Match Type | Support
|
---|
66%
| dexvert
| Compact Compressed (Unix) (archive/compact)
| ext
| Supported |
10%
| dexvert
| MacBinary (archive/macBinary)
| fallback
| Supported |
1%
| dexvert
| Text File (text/txt)
| fallback
| Supported |
100%
| file
| MacBinary II, Wed Oct 30 15:58:05 1991, modified Wed Oct 30 15:58:05 1991, creator 'MPS ', type ASCII, 13504 bytes "serial.c" , at 0x3540 382 bytes resource
| default (weak)
| |
99%
| file
| data
| default
| |
74%
| TrID
| Macintosh plain text (MacBinary)
| default
| |
25%
| TrID
| MacBinary 2
| default (weak)
| |
100%
| siegfried
| fmt/1762 MacBinary (II)
| default
| |
100%
| lsar
| MacBinary
| default
|
|
id metadata |
---|
key | value |
---|
macFileType | [TEXT] |
macFileCreator | [MPS ] |
hex view+--------+-------------------------+-------------------------+--------+--------+
|00000000| 00 08 73 65 72 69 61 6c | 2e 63 00 00 00 00 00 00 |..serial|.c......|
|00000010| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000040| 00 54 45 58 54 4d 50 53 | 20 00 00 00 00 00 00 00 |.TEXTMPS| .......|
|00000050| 00 00 00 00 00 34 c0 00 | 00 01 7e a5 34 cd 5d a5 |.....4..|..~.4.].|
|00000060| 34 cd 5d 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |4.].....|........|
|00000070| 00 00 00 00 00 00 00 00 | 00 00 81 81 18 50 00 00 |........|.....P..|
|00000080| 2f 2a 0d 09 43 6f 70 79 | 72 69 67 68 74 20 43 6f |/*..Copy|right Co|
|00000090| 72 6e 65 6c 6c 20 55 6e | 69 76 65 72 73 69 74 79 |rnell Un|iversity|
|000000a0| 20 31 39 38 36 2e 20 20 | 41 6c 6c 20 72 69 67 68 | 1986. |All righ|
|000000b0| 74 73 20 61 72 65 20 72 | 65 73 65 72 76 65 64 2e |ts are r|eserved.|
|000000c0| 0d 2a 2f 0d 0d 23 69 6e | 63 6c 75 64 65 20 3c 65 |.*/..#in|clude <e|
|000000d0| 6d 2e 68 3e 0d 0d 23 69 | 6e 63 6c 75 64 65 20 3c |m.h>..#i|nclude <|
|000000e0| 73 65 72 69 61 6c 2e 68 | 3e 0d 23 69 6e 63 6c 75 |serial.h|>.#inclu|
|000000f0| 64 65 20 3c 33 32 37 30 | 2e 68 3e 0d 23 69 6e 63 |de <3270|.h>.#inc|
|00000100| 6c 75 64 65 20 3c 68 31 | 39 2e 68 3e 0d 23 69 6e |lude <h1|9.h>.#in|
|00000110| 63 6c 75 64 65 20 3c 65 | 72 72 6f 72 73 2e 68 3e |clude <e|rrors.h>|
|00000120| 0d 23 69 6e 63 6c 75 64 | 65 20 3c 63 6f 6e 66 69 |.#includ|e <confi|
|00000130| 67 2e 68 3e 0d 23 69 6e | 63 6c 75 64 65 20 3c 6d |g.h>.#in|clude <m|
|00000140| 65 6e 75 64 65 66 73 2e | 68 3e 0d 23 69 6e 63 6c |enudefs.|h>.#incl|
|00000150| 75 64 65 20 3c 6f 73 75 | 74 69 6c 2e 68 3e 0d 0d |ude <osu|til.h>..|
|00000160| 2f 2a 20 64 65 66 69 6e | 65 73 20 66 6f 72 20 73 |/* defin|es for s|
|00000170| 65 72 69 61 6c 20 70 6f | 72 74 20 78 6f 6e 2f 78 |erial po|rt xon/x|
|00000180| 6f 66 66 20 2a 2f 0d 23 | 64 65 66 69 6e 65 20 53 |off */.#|define S|
|00000190| 48 55 54 4f 46 46 09 09 | 31 36 30 30 0d 23 64 65 |HUTOFF..|1600.#de|
|000001a0| 66 69 6e 65 20 53 45 52 | 42 55 46 53 49 5a 45 09 |fine SER|BUFSIZE.|
|000001b0| 34 30 39 36 0d 0d 2f 2a | 20 6d 6f 64 65 6d 70 6f |4096../*| modempo|
|000001c0| 72 74 20 6d 65 6e 75 20 | 69 74 65 6d 73 20 69 6e |rt menu |items in|
|000001d0| 20 73 65 72 69 61 6c 20 | 76 65 72 73 69 6f 6e 20 | serial |version |
|000001e0| 2a 2f 0d 0d 23 64 65 66 | 69 6e 65 20 4d 4f 44 45 |*/..#def|ine MODE|
|000001f0| 4d 50 4f 52 54 09 31 0d | 23 64 65 66 69 6e 65 20 |MPORT.1.|#define |
|00000200| 50 52 49 4e 54 45 52 50 | 4f 52 54 09 32 0d 23 64 |PRINTERP|ORT.2.#d|
|00000210| 65 66 69 6e 65 20 4e 55 | 4d 50 4f 52 54 53 09 32 |efine NU|MPORTS.2|
|00000220| 0d 0d 69 6e 74 20 66 64 | 63 61 70 74 75 72 65 20 |..int fd|capture |
|00000230| 3d 20 2d 31 3b 20 09 09 | 2f 2a 20 66 64 20 66 6f |= -1; ..|/* fd fo|
|00000240| 72 20 74 72 61 6e 73 66 | 65 72 20 66 69 6c 65 20 |r transf|er file |
|00000250| 2a 2f 0d 0d 63 68 61 72 | 20 2a 20 61 73 65 72 69 |*/..char| * aseri|
|00000260| 6e 62 75 66 3b 09 09 09 | 2f 2a 20 69 6e 70 75 74 |nbuf;...|/* input|
|00000270| 20 62 75 66 66 65 72 20 | 74 6f 20 61 73 73 69 67 | buffer |to assig|
|00000280| 6e 20 74 6f 20 4d 6f 64 | 65 6d 20 70 6f 72 74 20 |n to Mod|em port |
|00000290| 2a 2f 0d 63 68 61 72 20 | 2a 20 62 73 65 72 69 6e |*/.char |* bserin|
|000002a0| 62 75 66 3b 09 09 09 2f | 2a 20 64 69 74 74 6f 20 |buf;.../|* ditto |
|000002b0| 66 6f 72 20 70 72 69 6e | 74 65 72 20 70 6f 72 74 |for prin|ter port|
|000002c0| 20 2a 2f 0d 63 68 61 72 | 20 2a 20 72 65 61 64 62 | */.char| * readb|
|000002d0| 75 66 3b 20 09 09 09 2f | 2a 20 6f 75 72 20 72 65 |uf; .../|* our re|
|000002e0| 61 64 20 62 75 66 66 65 | 72 20 2a 2f 0d 09 2f 2a |ad buffe|r */../*|
|000002f0| 20 62 75 66 66 65 72 73 | 20 66 6f 72 20 73 65 72 | buffers| for ser|
|00000300| 69 61 6c 20 72 65 61 64 | 73 20 2a 2f 0d 0d 63 68 |ial read|s */..ch|
|00000310| 61 72 20 78 6f 66 66 6d | 65 73 73 5b 5d 20 3d 20 |ar xoffm|ess[] = |
|00000320| 22 4e 6f 20 58 4f 4e 2f | 58 4f 46 46 2d 2d 43 61 |"No XON/|XOFF--Ca|
|00000330| 70 74 75 72 65 20 6d 61 | 79 20 6c 6f 73 65 20 74 |pture ma|y lose t|
|00000340| 65 78 74 22 3b 0d 0d 69 | 6e 74 20 6e 6f 73 65 72 |ext";..i|nt noser|
|00000350| 64 3b 09 09 09 09 09 2f | 2a 20 53 45 52 44 20 73 |d;...../|* SERD s|
|00000360| 65 72 69 61 6c 20 64 72 | 69 76 65 72 20 72 65 73 |erial dr|iver res|
|00000370| 6f 75 72 63 65 20 6e 6f | 74 20 70 72 65 73 65 6e |ource no|t presen|
|00000380| 74 20 2a 2f 0d 0d 0d 73 | 74 72 75 63 74 20 77 69 |t */...s|truct wi|
|00000390| 6e 64 73 20 2a 20 6d 6f | 64 65 6d 62 75 73 79 3b |nds * mo|dembusy;|
|000003a0| 09 09 09 2f 2a 20 70 6f | 72 74 20 69 6e 20 75 73 |.../* po|rt in us|
|000003b0| 65 20 66 6c 61 67 20 2a | 2f 0d 73 74 72 75 63 74 |e flag *|/.struct|
|000003c0| 20 77 69 6e 64 73 20 2a | 20 70 72 69 6e 74 65 72 | winds *| printer|
|000003d0| 62 75 73 79 3b 0d 0d 73 | 68 6f 72 74 20 6d 6f 64 |busy;..s|hort mod|
|000003e0| 65 6d 6f 70 65 6e 65 64 | 3b 09 09 09 2f 2a 20 70 |emopened|;.../* p|
|000003f0| 6f 72 74 20 77 61 73 20 | 6f 70 65 6e 65 64 20 66 |ort was |opened f|
|00000400| 6c 61 67 20 2a 2f 0d 73 | 68 6f 72 74 20 70 72 69 |lag */.s|hort pri|
|00000410| 6e 74 6f 70 65 6e 65 64 | 3b 0d 0d 23 64 65 66 69 |ntopened|;..#defi|
|00000420| 6e 65 20 62 61 75 64 33 | 38 34 30 30 09 31 0d 0d |ne baud3|8400.1..|
|00000430| 69 6e 74 20 62 61 75 64 | 72 61 74 65 73 5b 5d 20 |int baud|rates[] |
|00000440| 3d 20 7b 62 61 75 64 35 | 37 36 30 30 2c 20 62 61 |= {baud5|7600, ba|
|00000450| 75 64 33 38 34 30 30 2c | 20 62 61 75 64 31 39 32 |ud38400,| baud192|
|00000460| 30 30 2c 20 62 61 75 64 | 39 36 30 30 2c 20 62 61 |00, baud|9600, ba|
|00000470| 75 64 34 38 30 30 2c 20 | 62 61 75 64 32 34 30 30 |ud4800, |baud2400|
|00000480| 2c 20 62 61 75 64 31 32 | 30 30 2c 20 62 61 75 64 |, baud12|00, baud|
|00000490| 33 30 30 7d 3b 0d 69 6e | 74 20 64 61 74 61 63 6f |300};.in|t dataco|
|000004a0| 6e 73 74 5b 5d 20 3d 20 | 7b 64 61 74 61 38 2c 20 |nst[] = |{data8, |
|000004b0| 64 61 74 61 37 2c 20 64 | 61 74 61 36 7d 3b 0d 09 |data7, d|ata6};..|
|000004c0| 2f 2a 20 35 2c 20 36 2c | 20 37 2c 20 38 20 64 61 |/* 5, 6,| 7, 8 da|
|000004d0| 74 61 20 62 69 74 73 20 | 2a 2f 0d 69 6e 74 20 70 |ta bits |*/.int p|
|000004e0| 61 72 69 74 79 63 6f 6e | 73 74 5b 5d 20 3d 20 7b |aritycon|st[] = {|
|000004f0| 6e 6f 50 61 72 69 74 79 | 2c 20 65 76 65 6e 50 61 |noParity|, evenPa|
|00000500| 72 69 74 79 2c 20 6f 64 | 64 50 61 72 69 74 79 7d |rity, od|dParity}|
|00000510| 3b 0d 09 2f 2a 20 6e 6f | 6e 65 2c 20 65 76 65 6e |;../* no|ne, even|
|00000520| 2c 20 6f 64 64 20 2a 2f | 0d 69 6e 74 20 73 74 6f |, odd */|.int sto|
|00000530| 70 63 6f 6e 73 74 5b 5d | 20 3d 20 7b 73 74 6f 70 |pconst[]| = {stop|
|00000540| 32 30 2c 20 73 74 6f 70 | 31 35 2c 20 73 74 6f 70 |20, stop|15, stop|
|00000550| 31 30 7d 3b 0d 09 2f 2a | 20 31 2c 20 31 2e 35 2c |10};../*| 1, 1.5,|
|00000560| 20 32 20 73 74 6f 70 20 | 62 69 74 73 20 2a 2f 0d | 2 stop |bits */.|
|00000570| 0d 65 78 74 65 72 6e 20 | 48 61 6e 64 6c 65 20 6d |.extern |Handle m|
|00000580| 65 6e 75 5b 5d 3b 0d 0d | 2f 2a 20 20 63 68 65 63 |enu[];..|/* chec|
|00000590| 6b 20 74 68 65 20 73 65 | 72 69 61 6c 20 70 6f 72 |k the se|rial por|
|000005a0| 74 20 66 6f 72 20 66 72 | 65 73 68 20 64 61 74 61 |t for fr|esh data|
|000005b0| 20 0d 09 75 73 65 73 20 | 65 6d 64 70 20 62 79 20 | ..uses |emdp by |
|000005c0| 64 65 66 61 75 6c 74 20 | 0d 2a 2f 0d 0d 73 65 72 |default |.*/..ser|
|000005d0| 69 61 6c 5f 73 65 72 76 | 69 63 65 28 29 0d 7b 0d |ial_serv|ice().{.|
|000005e0| 09 6c 6f 6e 67 20 72 65 | 61 64 63 6e 74 3b 0d 09 |.long re|adcnt;..|
|000005f0| 6c 6f 6e 67 20 73 65 72 | 63 6e 74 3b 0d 09 0d 09 |long ser|cnt;....|
|00000600| 69 66 20 28 21 65 6d 64 | 70 2d 3e 63 6f 6e 6e 6f |if (!emd|p->conno|
|00000610| 70 65 6e 29 0d 09 09 72 | 65 74 75 72 6e 3b 0d 09 |pen)...r|eturn;..|
|00000620| 09 0d 09 53 65 72 47 65 | 74 42 75 66 28 65 6d 64 |...SerGe|tBuf(emd|
|00000630| 70 2d 3e 72 65 66 69 6e | 2c 20 26 73 65 72 63 6e |p->refin|, &sercn|
|00000640| 74 29 3b 0d 0d 09 69 66 | 20 28 6e 6f 73 65 72 64 |t);...if| (noserd|
|00000650| 29 20 7b 0d 09 09 2f 2a | 20 69 66 20 74 68 65 20 |) {.../*| if the |
|00000660| 53 45 52 44 20 69 73 20 | 6e 6f 74 20 70 72 65 73 |SERD is |not pres|
|00000670| 65 6e 74 20 77 65 20 6d | 75 73 74 20 64 6f 20 78 |ent we m|ust do x|
|00000680| 6f 6e 2f 78 6f 66 66 20 | 68 61 6e 64 6c 69 6e 67 |on/xoff |handling|
|00000690| 20 2a 2f 0d 09 09 0d 09 | 09 69 66 20 28 65 6d 64 | */.....|.if (emd|
|000006a0| 70 2d 3e 78 6f 6e 29 20 | 7b 0d 09 09 09 69 66 20 |p->xon) |{....if |
|000006b0| 28 73 65 72 63 6e 74 20 | 3e 20 53 48 55 54 4f 46 |(sercnt |> SHUTOF|
|000006c0| 46 29 20 7b 0d 09 09 09 | 09 2f 2a 20 74 75 72 6e |F) {....|./* turn|
|000006d0| 20 69 74 20 6f 66 66 20 | 2a 2f 0d 09 09 09 09 73 | it off |*/.....s|
|000006e0| 65 72 70 75 74 63 68 61 | 72 28 58 5f 4f 46 46 29 |erputcha|r(X_OFF)|
|000006f0| 3b 0d 09 09 09 09 65 6d | 64 70 2d 3e 78 6f 6e 20 |;.....em|dp->xon |
|00000700| 3d 20 46 41 4c 53 45 3b | 0d 09 09 09 7d 0d 09 09 |= FALSE;|....}...|
|00000710| 7d 0d 09 09 65 6c 73 65 | 20 69 66 20 28 73 65 72 |}...else| if (ser|
|00000720| 63 6e 74 20 3c 20 53 48 | 55 54 4f 46 46 29 20 7b |cnt < SH|UTOFF) {|
|00000730| 0d 09 09 09 2f 2a 20 74 | 75 72 6e 20 74 72 61 6e |..../* t|urn tran|
|00000740| 73 6d 69 73 73 69 6f 6e | 20 62 61 63 6b 20 6f 6e |smission| back on|
|00000750| 20 2a 2f 0d 09 09 09 73 | 65 72 70 75 74 63 68 61 | */....s|erputcha|
|00000760| 72 28 58 5f 4f 4e 29 3b | 0d 09 09 09 65 6d 64 70 |r(X_ON);|....emdp|
|00000770| 2d 3e 78 6f 6e 20 3d 20 | 54 52 55 45 3b 0d 09 09 |->xon = |TRUE;...|
|00000780| 7d 0d 09 7d 0d 09 69 66 | 20 28 73 65 72 63 6e 74 |}..}..if| (sercnt|
|00000790| 29 20 7b 0d 09 09 72 65 | 67 69 73 74 65 72 20 63 |) {...re|gister c|
|000007a0| 68 61 72 20 2a 20 72 65 | 61 64 70 3b 0d 09 09 72 |har * re|adp;...r|
|000007b0| 65 67 69 73 74 65 72 20 | 63 68 61 72 20 2a 20 62 |egister |char * b|
|000007c0| 75 66 65 6e 64 3b 0d 0d | 09 09 69 66 20 28 65 6d |ufend;..|..if (em|
|000007d0| 64 70 2d 3e 69 63 6f 6e | 5f 75 70 29 0d 09 09 09 |dp->icon|_up)....|
|000007e0| 65 6d 61 6c 65 72 74 28 | 29 3b 09 09 09 2f 2a 20 |emalert(|);.../* |
|000007f0| 68 69 67 68 6c 69 67 68 | 74 20 69 63 6f 6e 20 74 |highligh|t icon t|
|00000800| 6f 20 73 68 6f 77 20 61 | 63 74 69 76 69 74 79 20 |o show a|ctivity |
|00000810| 2a 2f 0d 0d 09 09 69 66 | 20 28 73 65 72 63 6e 74 |*/....if| (sercnt|
|00000820| 20 3e 20 53 45 52 42 55 | 46 53 49 5a 45 29 20 7b | > SERBU|FSIZE) {|
|00000830| 0d 09 09 09 72 65 61 64 | 63 6e 74 20 3d 20 53 45 |....read|cnt = SE|
|00000840| 52 42 55 46 53 49 5a 45 | 3b 0d 09 09 7d 0d 09 09 |RBUFSIZE|;...}...|
|00000850| 65 6c 73 65 20 7b 0d 09 | 09 09 72 65 61 64 63 6e |else {..|..readcn|
|00000860| 74 20 3d 20 73 65 72 63 | 6e 74 3b 0d 09 09 7d 0d |t = serc|nt;...}.|
|00000870| 09 09 46 53 52 65 61 64 | 28 65 6d 64 70 2d 3e 72 |..FSRead|(emdp->r|
|00000880| 65 66 69 6e 2c 20 26 72 | 65 61 64 63 6e 74 2c 20 |efin, &r|eadcnt, |
|00000890| 72 65 61 64 62 75 66 29 | 3b 0d 23 69 66 64 65 66 |readbuf)|;.#ifdef|
|000008a0| 20 55 53 45 53 45 52 49 | 41 4c 57 41 49 54 0d 09 | USESERI|ALWAIT..|
|000008b0| 09 69 66 20 28 61 75 74 | 6f 6b 65 79 20 7c 7c 20 |.if (aut|okey || |
|000008c0| 72 65 61 64 63 6e 74 20 | 3c 3d 20 31 29 0d 09 09 |readcnt |<= 1)...|
|000008d0| 09 73 65 72 69 61 6c 77 | 61 69 74 20 3d 20 30 3b |.serialw|ait = 0;|
|000008e0| 0d 09 09 65 6c 73 65 0d | 09 09 09 73 65 72 69 61 |...else.|...seria|
|000008f0| 6c 77 61 69 74 20 3d 20 | 30 3b 0d 09 09 09 2f 2a |lwait = |0;..../*|
|00000900| 20 77 61 69 74 20 66 6f | 72 20 69 20 74 69 63 6b | wait fo|r i tick|
|00000910| 73 20 74 6f 20 73 65 72 | 76 69 63 65 20 73 65 72 |s to ser|vice ser|
|00000920| 69 61 6c 20 61 67 61 69 | 6e 20 2a 2f 0d 23 65 6e |ial agai|n */.#en|
|00000930| 64 69 66 0d 0d 09 09 65 | 6d 64 70 2d 3e 69 6e 5f |dif....e|mdp->in_|
|00000940| 63 6e 74 20 2b 3d 20 72 | 65 61 64 63 6e 74 3b 0d |cnt += r|eadcnt;.|
|00000950| 09 09 69 66 20 28 20 65 | 6d 64 70 2d 3e 69 6e 5f |..if ( e|mdp->in_|
|00000960| 63 6e 74 20 3e 3d 20 31 | 30 30 30 20 29 20 7b 0d |cnt >= 1|000 ) {.|
|00000970| 09 09 09 2f 2a 20 74 75 | 72 6e 20 74 68 65 20 6b |.../* tu|rn the k|
|00000980| 69 6c 6f 63 68 61 72 20 | 63 6f 75 6e 74 65 72 20 |ilochar |counter |
|00000990| 6f 76 65 72 20 2a 2f 0d | 09 09 09 65 6d 64 70 2d |over */.|...emdp-|
|000009a0| 3e 69 6e 5f 63 6e 74 20 | 3d 20 30 3b 0d 09 09 09 |>in_cnt |= 0;....|
|000009b0| 65 6d 64 70 2d 3e 6b 69 | 6e 5f 63 6e 74 2b 2b 3b |emdp->ki|n_cnt++;|
|000009c0| 0d 09 09 09 64 72 61 77 | 69 6e 63 6f 75 6e 74 28 |....draw|incount(|
|000009d0| 29 3b 0d 09 09 7d 0d 09 | 09 0d 09 09 66 6f 72 20 |);...}..|....for |
|000009e0| 28 72 65 61 64 70 20 3d | 20 72 65 61 64 62 75 66 |(readp =| readbuf|
|000009f0| 2c 20 62 75 66 65 6e 64 | 20 3d 20 72 65 61 64 70 |, bufend| = readp|
|00000a00| 20 2b 20 72 65 61 64 63 | 6e 74 3b 20 72 65 61 64 | + readc|nt; read|
|00000a10| 70 20 3c 20 62 75 66 65 | 6e 64 3b 20 72 65 61 64 |p < bufe|nd; read|
|00000a20| 70 2b 2b 29 20 7b 0d 09 | 09 09 2f 2a 20 6d 61 73 |p++) {..|../* mas|
|00000a30| 68 20 74 68 65 20 68 69 | 67 68 20 62 69 74 20 64 |h the hi|gh bit d|
|00000a40| 6f 77 6e 20 66 6f 72 20 | 74 68 65 20 65 6d 75 6c |own for |the emul|
|00000a50| 61 74 6f 72 20 2a 2f 0d | 09 09 09 2a 72 65 61 64 |ator */.|...*read|
|00000a60| 70 20 26 3d 20 30 78 37 | 66 3b 0d 09 09 7d 0d 09 |p &= 0x7|f;...}..|
|00000a70| 09 28 2a 65 6d 64 70 2d | 3e 65 6d 73 74 72 29 28 |.(*emdp-|>emstr)(|
|00000a80| 72 65 61 64 62 75 66 2c | 20 28 75 6e 73 69 67 6e |readbuf,| (unsign|
|00000a90| 65 64 20 73 68 6f 72 74 | 29 20 72 65 61 64 63 6e |ed short|) readcn|
|00000aa0| 74 29 3b 0d 09 09 69 66 | 20 28 72 65 61 64 63 6e |t);...if| (readcn|
|00000ab0| 74 20 3c 3d 20 33 20 7c | 7c 20 61 75 74 6f 6b 65 |t <= 3 ||| autoke|
|00000ac0| 79 20 7c 7c 20 61 75 74 | 6f 6b 65 79 70 65 72 73 |y || aut|okeypers|
|00000ad0| 69 73 74 29 20 7b 0d 09 | 09 09 2f 2a 20 69 66 20 |ist) {..|../* if |
|00000ae0| 74 68 65 20 75 73 65 72 | 20 69 73 20 68 6f 6c 64 |the user| is hold|
|00000af0| 69 6e 67 20 61 20 6b 65 | 79 20 64 6f 77 6e 2c 20 |ing a ke|y down, |
|00000b00| 6d 61 6b 65 20 73 75 72 | 65 20 74 68 65 20 63 75 |make sur|e the cu|
|00000b10| 72 73 6f 72 20 73 68 6f | 77 73 20 2a 2f 0d 09 09 |rsor sho|ws */...|
|00000b20| 09 73 65 74 63 75 72 73 | 6f 72 28 29 3b 0d 09 09 |.setcurs|or();...|
|00000b30| 09 69 66 20 28 61 75 74 | 6f 6b 65 79 20 26 26 20 |.if (aut|okey && |
|00000b40| 61 75 74 6f 6b 65 79 77 | 61 69 74 20 21 3d 20 4e |autokeyw|ait != N|
|00000b50| 55 4c 4c 29 20 7b 0d 09 | 09 09 09 61 75 74 6f 6b |ULL) {..|...autok|
|00000b60| 65 79 70 65 72 73 69 73 | 74 20 3d 20 54 52 55 45 |eypersis|t = TRUE|
|00000b70| 3b 0d 09 09 09 09 74 6d | 5f 74 73 65 74 28 36 30 |;.....tm|_tset(60|
|00000b80| 2c 20 63 6c 72 61 75 74 | 6f 6b 65 79 77 61 69 74 |, clraut|okeywait|
|00000b90| 2c 20 4e 55 4c 4c 2c 20 | 61 75 74 6f 6b 65 79 77 |, NULL, |autokeyw|
|00000ba0| 61 69 74 29 3b 0d 09 09 | 09 7d 0d 09 09 7d 0d 09 |ait);...|.}...}..|
|00000bb0| 09 0d 09 09 65 6d 64 70 | 2d 3e 68 79 63 6e 65 77 |....emdp|->hycnew|
|00000bc0| 64 61 74 61 20 3d 20 54 | 52 55 45 3b 0d 0d 23 69 |data = T|RUE;..#i|
|00000bd0| 66 64 65 66 20 53 45 52 | 46 49 4c 45 43 41 50 54 |fdef SER|FILECAPT|
|00000be0| 55 52 45 0d 09 2f 2a 20 | 61 6e 20 6f 6c 64 20 66 |URE../* |an old f|
|00000bf0| 65 61 74 75 72 65 20 77 | 65 20 77 69 6c 6c 20 70 |eature w|e will p|
|00000c00| 72 6f 62 61 62 6c 79 20 | 73 75 70 70 6f 72 74 20 |robably |support |
|00000c10| 61 74 20 61 20 68 69 67 | 68 65 72 20 6c 65 76 65 |at a hig|her leve|
|00000c20| 6c 20 2a 2f 0d 09 09 69 | 66 20 28 66 64 63 61 70 |l */...i|f (fdcap|
|00000c30| 74 75 72 65 20 3e 3d 20 | 30 29 20 7b 0d 09 09 09 |ture >= |0) {....|
|00000c40| 63 68 61 72 20 2a 20 73 | 74 61 6b 65 3b 0d 0d 09 |char * s|take;...|
|00000c50| 09 09 66 6f 72 20 28 73 | 74 61 6b 65 20 3d 20 72 |..for (s|take = r|
|00000c60| 65 61 64 70 20 3d 20 72 | 65 61 64 62 75 66 3b 20 |eadp = r|eadbuf; |
|00000c70| 72 65 61 64 70 20 3c 20 | 62 75 66 65 6e 64 3b 20 |readp < |bufend; |
|00000c80| 72 65 61 64 70 2b 2b 29 | 20 7b 0d 09 09 09 09 69 |readp++)| {.....i|
|00000c90| 66 20 28 2a 72 65 61 64 | 70 20 3d 3d 20 4c 46 29 |f (*read|p == LF)|
|00000ca0| 20 7b 0d 09 09 09 09 09 | 77 72 69 74 65 28 66 64 | {......|write(fd|
|00000cb0| 63 61 70 74 75 72 65 2c | 20 73 74 61 6b 65 2c 20 |capture,| stake, |
|00000cc0| 72 65 61 64 70 20 2d 20 | 73 74 61 6b 65 29 3b 20 |readp - |stake); |
|00000cd0| 0d 09 09 09 09 09 09 2f | 2a 20 73 6b 69 70 20 74 |......./|* skip t|
|00000ce0| 68 65 20 4c 46 20 2a 2f | 0d 09 09 09 09 09 73 74 |he LF */|......st|
|00000cf0| 61 6b 65 20 3d 20 72 65 | 61 64 70 20 2b 20 31 3b |ake = re|adp + 1;|
|00000d00| 0d 09 09 09 09 7d 0d 09 | 09 09 7d 0d 09 09 09 69 |.....}..|..}....i|
|00000d10| 66 20 28 72 65 61 64 70 | 20 3e 20 73 74 61 6b 65 |f (readp| > stake|
|00000d20| 29 0d 09 09 09 09 2f 2a | 20 77 72 69 74 65 20 6f |)...../*| write o|
|00000d30| 75 74 20 77 68 61 74 27 | 73 20 6c 65 66 74 20 2a |ut what'|s left *|
|00000d40| 2f 0d 09 09 09 09 77 72 | 69 74 65 28 66 64 63 61 |/.....wr|ite(fdca|
|00000d50| 70 74 75 72 65 2c 20 73 | 74 61 6b 65 2c 20 72 65 |pture, s|take, re|
|00000d60| 61 64 70 20 2d 20 73 74 | 61 6b 65 29 3b 20 0d 09 |adp - st|ake); ..|
|00000d70| 09 7d 0d 23 65 6e 64 69 | 66 0d 09 7d 0d 7d 0d 0d |.}.#endi|f..}.}..|
|00000d80| 0d 63 68 61 72 20 73 65 | 72 6f 70 65 6e 65 72 72 |.char se|ropenerr|
|00000d90| 5b 5d 20 3d 20 22 4e 6f | 74 20 65 6e 6f 75 67 68 |[] = "No|t enough|
|00000da0| 20 6d 65 6d 6f 72 79 20 | 74 6f 20 6f 70 65 6e 20 | memory |to open |
|00000db0| 53 65 72 69 61 6c 20 44 | 72 69 76 65 72 22 3b 0d |Serial D|river";.|
|00000dc0| 0d 6f 70 65 6e 73 65 72 | 70 6f 72 74 28 29 0d 7b |.openser|port().{|
|00000dd0| 0d 09 4f 53 45 72 72 20 | 72 65 73 75 6c 74 3b 0d |..OSErr |result;.|
|00000de0| 09 63 68 61 72 20 6c 65 | 61 76 65 44 54 52 75 70 |.char le|aveDTRup|
|00000df0| 3b 0d 09 73 74 72 75 63 | 74 20 77 69 6e 64 73 20 |;..struc|t winds |
|00000e00| 2a 20 74 68 65 64 70 3b | 0d 09 0d 09 74 68 65 64 |* thedp;|....thed|
|00000e10| 70 20 3d 20 65 6d 64 70 | 3b 0d 09 69 66 20 28 72 |p = emdp|;..if (r|
|00000e20| 65 61 64 62 75 66 20 3d | 3d 20 4e 55 4c 4c 29 20 |eadbuf =|= NULL) |
|00000e30| 7b 0d 09 09 72 65 61 64 | 62 75 66 20 3d 20 6d 61 |{...read|buf = ma|
|00000e40| 6c 6c 6f 63 28 53 45 52 | 42 55 46 53 49 5a 45 29 |lloc(SER|BUFSIZE)|
|00000e50| 3b 0d 09 09 69 66 20 28 | 72 65 61 64 62 75 66 20 |;...if (|readbuf |
|00000e60| 3d 3d 20 4e 55 4c 4c 29 | 20 7b 0d 09 09 09 72 65 |== NULL)| {....re|
|00000e70| 74 75 72 6e 28 2d 31 29 | 3b 0d 09 09 7d 0d 09 7d |turn(-1)|;...}..}|
|00000e80| 0d 09 69 66 20 28 65 6d | 64 70 2d 3e 72 65 66 69 |..if (em|dp->refi|
|00000e90| 6e 29 0d 09 09 2f 2a 20 | 64 6f 6e 27 74 20 6f 70 |n).../* |don't op|
|00000ea0| 65 6e 20 74 77 69 63 65 | 20 2a 2f 0d 09 09 72 65 |en twice| */...re|
|00000eb0| 74 75 72 6e 28 30 29 3b | 0d 0d 09 69 66 20 28 65 |turn(0);|...if (e|
|00000ec0| 6d 64 70 2d 3e 75 73 65 | 62 70 6f 72 74 29 20 7b |mdp->use|bport) {|
|00000ed0| 0d 09 09 2f 2a 20 75 73 | 65 20 74 68 65 20 50 72 |.../* us|e the Pr|
|00000ee0| 69 6e 74 65 72 20 50 6f | 72 74 20 2a 2f 0d 09 09 |inter Po|rt */...|
|00000ef0| 69 66 20 28 70 72 69 6e | 74 65 72 62 75 73 79 29 |if (prin|terbusy)|
|00000f00| 20 7b 0d 09 09 09 69 66 | 20 28 71 75 65 72 79 73 | {....if| (querys|
|00000f10| 65 72 63 6c 6f 73 65 28 | 70 72 69 6e 74 65 72 62 |erclose(|printerb|
|00000f20| 75 73 79 29 29 20 7b 0d | 09 09 09 09 63 6c 6f 73 |usy)) {.|....clos|
|00000f30| 65 63 6f 6e 6e 28 70 72 | 69 6e 74 65 72 62 75 73 |econn(pr|interbus|
|00000f40| 79 29 3b 0d 09 09 09 09 | 67 65 74 63 6f 6e 74 65 |y);.....|getconte|
|00000f50| 78 74 28 74 68 65 64 70 | 29 3b 09 09 2f 2a 20 72 |xt(thedp|);../* r|
|00000f60| 65 73 74 6f 72 65 20 6f | 75 72 20 63 6f 6e 74 65 |estore o|ur conte|
|00000f70| 78 74 20 2a 2f 0d 09 09 | 09 7d 0d 09 09 09 65 6c |xt */...|.}....el|
|00000f80| 73 65 0d 09 09 09 09 72 | 65 74 75 72 6e 28 2d 31 |se.....r|eturn(-1|
|00000f90| 29 3b 0d 09 09 7d 0d 09 | 09 69 66 20 28 62 73 65 |);...}..|.if (bse|
|00000fa0| 72 69 6e 62 75 66 20 3d | 3d 20 4e 55 4c 4c 29 20 |rinbuf =|= NULL) |
|00000fb0| 7b 0d 09 09 09 62 73 65 | 72 69 6e 62 75 66 20 3d |{....bse|rinbuf =|
|00000fc0| 20 6d 61 6c 6c 6f 63 28 | 53 45 52 42 55 46 53 49 | malloc(|SERBUFSI|
|00000fd0| 5a 45 29 3b 0d 09 09 09 | 69 66 20 28 62 73 65 72 |ZE);....|if (bser|
|00000fe0| 69 6e 62 75 66 20 3d 3d | 20 4e 55 4c 4c 29 20 7b |inbuf ==| NULL) {|
|00000ff0| 0d 09 09 09 09 65 72 72 | 6f 72 28 26 73 65 72 6f |.....err|or(&sero|
|00001000| 70 65 6e 65 72 72 5b 30 | 5d 29 3b 0d 09 09 09 09 |penerr[0|]);.....|
|00001010| 72 65 74 75 72 6e 28 2d | 31 29 3b 0d 09 09 09 7d |return(-|1);....}|
|00001020| 0d 09 09 7d 0d 09 09 65 | 6d 64 70 2d 3e 72 65 66 |...}...e|mdp->ref|
|00001030| 69 6e 20 3d 20 2d 38 3b | 0d 09 09 65 6d 64 70 2d |in = -8;|...emdp-|
|00001040| 3e 72 65 66 6f 75 74 20 | 3d 20 2d 39 3b 0d 09 7d |>refout |= -9;..}|
|00001050| 0d 09 65 6c 73 65 20 7b | 0d 09 09 2f 2a 20 75 73 |..else {|.../* us|
|00001060| 65 20 74 68 65 20 4d 6f | 64 65 6d 20 50 6f 72 74 |e the Mo|dem Port|
|00001070| 20 2a 2f 0d 09 09 69 66 | 20 28 6d 6f 64 65 6d 62 | */...if| (modemb|
|00001080| 75 73 79 29 20 7b 0d 09 | 09 09 69 66 20 28 71 75 |usy) {..|..if (qu|
|00001090| 65 72 79 73 65 72 63 6c | 6f 73 65 28 6d 6f 64 65 |erysercl|ose(mode|
|000010a0| 6d 62 75 73 79 29 29 20 | 7b 0d 09 09 09 09 63 6c |mbusy)) |{.....cl|
|000010b0| 6f 73 65 63 6f 6e 6e 28 | 6d 6f 64 65 6d 62 75 73 |oseconn(|modembus|
|000010c0| 79 29 3b 0d 09 09 09 09 | 67 65 74 63 6f 6e 74 65 |y);.....|getconte|
|000010d0| 78 74 28 74 68 65 64 70 | 29 3b 09 09 2f 2a 20 72 |xt(thedp|);../* r|
|000010e0| 65 73 74 6f 72 65 20 6f | 75 72 20 63 6f 6e 74 65 |estore o|ur conte|
|000010f0| 78 74 20 2a 2f 0d 09 09 | 09 7d 0d 09 09 09 65 6c |xt */...|.}....el|
|00001100| 73 65 0d 09 09 09 09 72 | 65 74 75 72 6e 28 2d 31 |se.....r|eturn(-1|
|00001110| 29 3b 0d 09 09 7d 0d 23 | 69 66 64 65 66 20 4f 4d |);...}.#|ifdef OM|
|00001120| 4e 49 54 45 53 54 0d 09 | 09 69 66 20 28 6f 6d 6e |NITEST..|.if (omn|
|00001130| 69 5f 74 65 73 74 28 29 | 29 20 7b 0d 09 09 09 2f |i_test()|) {..../|
|00001140| 2a 20 76 65 72 69 66 79 | 20 74 68 61 74 20 74 68 |* verify| that th|
|00001150| 65 20 4f 6d 6e 69 6e 65 | 74 20 64 72 69 76 65 72 |e Omnine|t driver|
|00001160| 20 69 73 20 6e 6f 74 20 | 6d 75 63 6b 69 6e 67 20 | is not |mucking |
|00001170| 61 72 6f 75 6e 64 20 77 | 69 74 68 20 74 68 65 20 |around w|ith the |
|00001180| 70 6f 72 74 20 2a 2f 0d | 09 09 09 70 6f 72 74 65 |port */.|...porte|
|00001190| 72 72 28 30 29 3b 0d 09 | 09 09 72 65 74 75 72 6e |rr(0);..|..return|
|000011a0| 28 2d 31 29 3b 0d 09 09 | 7d 0d 23 65 6e 64 69 66 |(-1);...|}.#endif|
|000011b0| 0d 09 09 69 66 20 28 61 | 73 65 72 69 6e 62 75 66 |...if (a|serinbuf|
|000011c0| 20 3d 3d 20 4e 55 4c 4c | 29 20 7b 0d 09 09 09 61 | == NULL|) {....a|
|000011d0| 73 65 72 69 6e 62 75 66 | 20 3d 20 6d 61 6c 6c 6f |serinbuf| = mallo|
|000011e0| 63 28 53 45 52 42 55 46 | 53 49 5a 45 29 3b 0d 09 |c(SERBUF|SIZE);..|
|000011f0| 09 09 69 66 20 28 61 73 | 65 72 69 6e 62 75 66 20 |..if (as|erinbuf |
|00001200| 3d 3d 20 4e 55 4c 4c 29 | 20 7b 0d 09 09 09 09 65 |== NULL)| {.....e|
|00001210| 72 72 6f 72 28 26 73 65 | 72 6f 70 65 6e 65 72 72 |rror(&se|ropenerr|
|00001220| 5b 30 5d 29 3b 0d 09 09 | 09 09 72 65 74 75 72 6e |[0]);...|..return|
|00001230| 28 2d 31 29 3b 0d 09 09 | 09 7d 0d 09 09 7d 0d 09 |(-1);...|.}...}..|
|00001240| 09 65 6d 64 70 2d 3e 72 | 65 66 69 6e 20 3d 20 2d |.emdp->r|efin = -|
|00001250| 36 3b 0d 09 09 65 6d 64 | 70 2d 3e 72 65 66 6f 75 |6;...emd|p->refou|
|00001260| 74 20 3d 20 2d 37 3b 0d | 09 7d 0d 09 69 66 20 28 |t = -7;.|.}..if (|
|00001270| 28 72 65 73 75 6c 74 20 | 3d 20 20 52 41 4d 53 44 |(result |= RAMSD|
|00001280| 4f 70 65 6e 28 65 6d 64 | 70 2d 3e 75 73 65 62 70 |Open(emd|p->usebp|
|00001290| 6f 72 74 20 3f 20 73 50 | 6f 72 74 42 20 3a 20 73 |ort ? sP|ortB : s|
|000012a0| 50 6f 72 74 41 29 29 20 | 21 3d 20 6e 6f 45 72 72 |PortA)) |!= noErr|
|000012b0| 20 29 20 7b 0d 09 09 2f | 2a 20 6f 70 65 6e 20 66 | ) {.../|* open f|
|000012c0| 61 69 6c 65 64 20 2a 2f | 0d 09 09 69 66 20 28 72 |ailed */|...if (r|
|000012d0| 65 73 75 6c 74 20 3d 3d | 20 6f 70 65 6e 45 72 72 |esult ==| openErr|
|000012e0| 29 20 7b 0d 09 09 09 6e | 6f 73 65 72 64 20 3d 20 |) {....n|oserd = |
|000012f0| 54 52 55 45 3b 0d 09 09 | 09 65 72 72 6f 72 28 22 |TRUE;...|.error("|
|00001300| 4e 6f 20 53 45 52 44 20 | 72 65 73 6f 75 72 63 65 |No SERD |resource|
|00001310| 20 61 76 61 69 6c 61 62 | 6c 65 3b 20 75 73 69 6e | availab|le; usin|
|00001320| 67 20 6d 61 6e 75 61 6c | 20 58 4f 4e 2f 58 4f 46 |g manual| XON/XOF|
|00001330| 46 22 29 3b 0d 09 09 09 | 69 66 20 28 28 72 65 73 |F");....|if ((res|
|00001340| 75 6c 74 20 3d 20 4f 70 | 65 6e 44 72 69 76 65 72 |ult = Op|enDriver|
|00001350| 28 65 6d 64 70 2d 3e 75 | 73 65 62 70 6f 72 74 20 |(emdp->u|sebport |
|00001360| 3f 20 22 5c 50 2e 42 4f | 75 74 22 20 3a 20 22 5c |? "\P.BO|ut" : "\|
|00001370| 50 2e 41 4f 75 74 22 2c | 20 26 65 6d 64 70 2d 3e |P.AOut",| &emdp->|
|00001380| 72 65 66 6f 75 74 29 20 | 29 20 29 20 7b 0d 09 09 |refout) |) ) {...|
|00001390| 09 09 70 6f 72 74 65 72 | 72 28 72 65 73 75 6c 74 |..porter|r(result|
|000013a0| 29 3b 0d 09 09 09 09 72 | 65 74 75 72 6e 28 2d 31 |);.....r|eturn(-1|
|000013b0| 29 3b 0d 09 09 09 7d 0d | 09 09 7d 0d 09 09 65 6c |);....}.|..}...el|
|000013c0| 73 65 20 7b 0d 09 09 09 | 2f 2a 20 28 72 65 73 75 |se {....|/* (resu|
|000013d0| 6c 74 20 3d 3d 20 70 6f | 72 74 49 6e 55 73 65 20 |lt == po|rtInUse |
|000013e0| 7c 7c 20 72 65 73 75 6c | 74 20 3d 3d 20 70 6f 72 ||| resul|t == por|
|000013f0| 74 4e 6f 74 43 66 29 20 | 64 6f 6e 27 74 20 63 6f |tNotCf) |don't co|
|00001400| 76 65 72 20 61 6c 6c 20 | 62 61 73 65 73 21 20 2a |ver all |bases! *|
|00001410| 2f 0d 09 09 09 70 6f 72 | 74 65 72 72 28 72 65 73 |/....por|terr(res|
|00001420| 75 6c 74 29 3b 0d 09 09 | 09 72 65 74 75 72 6e 28 |ult);...|.return(|
|00001430| 2d 31 29 3b 0d 09 09 7d | 0d 09 7d 0d 09 65 6c 73 |-1);...}|..}..els|
|00001440| 65 20 7b 0d 09 09 2f 2a | 20 6d 61 6b 65 20 74 68 |e {.../*| make th|
|00001450| 65 20 53 45 52 44 20 64 | 6f 20 58 4f 4e 2f 58 4f |e SERD d|o XON/XO|
|00001460| 46 46 20 2a 2f 0d 09 09 | 53 65 72 53 68 6b 20 73 |FF */...|SerShk s|
|00001470| 65 72 53 68 6b 3b 0d 09 | 0d 09 09 6e 6f 73 65 72 |erShk;..|...noser|
|00001480| 64 20 3d 20 46 41 4c 53 | 45 3b 0d 0d 09 09 69 66 |d = FALS|E;....if|
|00001490| 20 28 65 6d 64 70 2d 3e | 62 61 75 64 20 3e 20 62 | (emdp->|baud > b|
|000014a0| 61 75 64 33 38 34 30 30 | 29 20 7b 0d 09 09 2f 2a |aud38400|) {.../*|
|000014b0| 20 75 73 65 20 58 4f 4e | 2f 58 4f 46 46 20 61 74 | use XON|/XOFF at|
|000014c0| 20 73 70 65 65 64 73 20 | 3c 20 33 38 2c 34 30 30 | speeds |< 38,400|
|000014d0| 20 62 61 75 64 20 2a 2f | 0d 09 09 09 0d 09 09 09 | baud */|........|
|000014e0| 73 65 72 53 68 6b 2e 66 | 58 4f 6e 20 3d 20 28 42 |serShk.f|XOn = (B|
|000014f0| 79 74 65 29 20 54 52 55 | 45 3b 09 09 09 2f 2a 20 |yte) TRU|E;.../* |
|00001500| 6f 75 74 70 75 74 20 58 | 4f 4e 2d 58 4f 46 46 20 |output X|ON-XOFF |
|00001510| 6f 6e 2f 6f 66 66 20 2a | 2f 0d 09 09 09 73 65 72 |on/off *|/....ser|
|00001520| 53 68 6b 2e 66 43 54 53 | 20 3d 20 28 42 79 74 65 |Shk.fCTS| = (Byte|
|00001530| 29 20 46 41 4c 53 45 3b | 09 09 09 2f 2a 20 43 54 |) FALSE;|.../* CT|
|00001540| 53 20 6f 75 74 70 75 74 | 20 6f 66 66 20 2a 2f 0d |S output| off */.|
|00001550| 09 09 09 73 65 72 53 68 | 6b 2e 78 4f 6e 20 20 3d |...serSh|k.xOn =|
|00001560| 20 28 63 68 61 72 29 20 | 43 54 4c 51 3b 09 09 09 | (char) |CTLQ;...|
|00001570| 2f 2a 20 78 6f 6e 20 63 | 68 61 72 20 44 43 31 20 |/* xon c|har DC1 |
|00001580| 2a 2f 0d 09 09 09 73 65 | 72 53 68 6b 2e 78 4f 66 |*/....se|rShk.xOf|
|00001590| 66 20 3d 20 28 63 68 61 | 72 29 20 43 54 4c 53 3b |f = (cha|r) CTLS;|
|000015a0| 09 09 09 2f 2a 20 78 6f | 66 66 20 63 68 61 72 20 |.../* xo|ff char |
|000015b0| 44 43 33 20 2a 2f 0d 09 | 09 09 73 65 72 53 68 6b |DC3 */..|..serShk|
|000015c0| 2e 65 72 72 73 20 3d 20 | 28 42 79 74 65 29 20 30 |.errs = |(Byte) 0|
|000015d0| 3b 09 09 09 09 2f 2a 20 | 69 6e 70 75 74 20 61 62 |;..../* |input ab|
|000015e0| 6f 72 74 20 73 65 74 74 | 69 6e 67 73 09 41 4c 4c |ort sett|ings.ALL|
|000015f0| 20 3d 20 30 31 36 30 20 | 2a 2f 0d 09 09 09 73 65 | = 0160 |*/....se|
|00001600| 72 53 68 6b 2e 65 76 74 | 73 20 3d 20 28 42 79 74 |rShk.evt|s = (Byt|
|00001610| 65 29 20 30 3b 09 09 09 | 09 2f 2a 20 73 74 61 74 |e) 0;...|./* stat|
|00001620| 75 73 20 6a 75 6e 6b 09 | 20 2a 2f 0d 09 09 09 73 |us junk.| */....s|
|00001630| 65 72 53 68 6b 2e 66 49 | 6e 58 20 3d 20 28 42 79 |erShk.fI|nX = (By|
|00001640| 74 65 29 20 54 52 55 45 | 3b 09 09 09 2f 2a 20 69 |te) TRUE|;.../* i|
|00001650| 6e 70 75 74 20 58 4f 4e | 2d 58 4f 46 46 20 6f 6e |nput XON|-XOFF on|
|00001660| 2f 6f 66 66 20 2a 2f 0d | 09 09 09 73 65 72 53 68 |/off */.|...serSh|
|00001670| 6b 2e 6e 75 6c 6c 20 3d | 20 28 42 79 74 65 29 20 |k.null =| (Byte) |
|00001680| 46 41 4c 53 45 3b 09 09 | 09 2f 2a 20 43 54 53 20 |FALSE;..|./* CTS |
|00001690| 69 6e 70 75 74 20 6f 66 | 66 20 2a 2f 0d 09 09 0d |input of|f */....|
|000016a0| 09 09 09 69 66 20 28 43 | 6f 6e 74 72 6f 6c 28 65 |...if (C|ontrol(e|
|000016b0| 6d 64 70 2d 3e 72 65 66 | 6f 75 74 2c 20 5f 6e 65 |mdp->ref|out, _ne|
|000016c0| 77 72 6f 6d 28 29 20 3f | 20 31 34 20 3a 20 31 30 |wrom() ?| 14 : 10|
|000016d0| 2c 20 26 73 65 72 53 68 | 6b 29 29 0d 09 09 09 09 |, &serSh|k)).....|
|000016e0| 65 72 72 6f 72 28 78 6f | 66 66 6d 65 73 73 29 3b |error(xo|ffmess);|
|000016f0| 0d 09 09 09 09 2f 2a 20 | 22 41 64 76 61 6e 63 65 |...../* |"Advance|
|00001700| 64 22 20 63 6f 6e 74 72 | 6f 6c 20 63 61 6c 6c 2c |d" contr|ol call,|
|00001710| 20 64 75 70 73 20 53 65 | 72 48 53 68 61 6b 65 20 | dups Se|rHShake |
|00001720| 61 64 64 69 6e 67 20 44 | 54 52 20 69 6e 70 75 74 |adding D|TR input|
|00001730| 20 61 73 20 38 74 68 20 | 62 79 74 65 2c 0d 09 09 | as 8th |byte,...|
|00001740| 09 09 09 75 73 65 64 20 | 77 68 65 6e 20 6e 6f 74 |...used |when not|
|00001750| 20 6f 6c 64 20 52 4f 4d | 20 2a 2f 0d 09 09 7d 0d | old ROM| */...}.|
|00001760| 09 09 2f 2a 20 6d 61 6b | 65 20 63 6f 6e 74 72 6f |../* mak|e contro|
|00001770| 6c 20 63 61 6c 6c 20 73 | 6f 20 4d 61 63 20 2b 20 |l call s|o Mac + |
|00001780| 77 69 6c 6c 20 6c 65 61 | 76 65 20 69 74 73 20 44 |will lea|ve its D|
|00001790| 54 52 20 6c 69 6e 65 20 | 61 73 73 65 72 74 65 64 |TR line |asserted|
|000017a0| 20 77 68 65 6e 20 79 6f | 75 20 63 6c 6f 73 65 20 | when yo|u close |
|000017b0| 64 72 69 76 65 72 20 2a | 2f 0d 09 09 69 66 20 28 |driver *|/...if (|
|000017c0| 5f 6e 65 77 72 6f 6d 28 | 29 29 20 7b 0d 09 09 09 |_newrom(|)) {....|
|000017d0| 6c 65 61 76 65 44 54 52 | 75 70 20 3d 20 30 78 38 |leaveDTR|up = 0x8|
|000017e0| 30 3b 09 2f 2a 20 6d 61 | 73 68 20 62 69 74 20 37 |0;./* ma|sh bit 7|
|000017f0| 20 64 6f 77 6e 20 66 6f | 72 20 44 54 52 20 2a 2f | down fo|r DTR */|
|00001800| 0d 09 09 09 43 6f 6e 74 | 72 6f 6c 28 65 6d 64 70 |....Cont|rol(emdp|
|00001810| 2d 3e 72 65 66 6f 75 74 | 2c 20 31 36 2c 20 26 6c |->refout|, 16, &l|
|00001820| 65 61 76 65 44 54 52 75 | 70 29 3b 0d 09 09 7d 0d |eaveDTRu|p);...}.|
|00001830| 09 7d 0d 09 53 65 72 53 | 65 74 42 75 66 28 65 6d |.}..SerS|etBuf(em|
|00001840| 64 70 2d 3e 72 65 66 69 | 6e 2c 20 65 6d 64 70 2d |dp->refi|n, emdp-|
|00001850| 3e 75 73 65 62 70 6f 72 | 74 20 3f 20 62 73 65 72 |>usebpor|t ? bser|
|00001860| 69 6e 62 75 66 20 3a 20 | 61 73 65 72 69 6e 62 75 |inbuf : |aserinbu|
|00001870| 66 2c 20 53 45 52 42 55 | 46 53 49 5a 45 29 3b 0d |f, SERBU|FSIZE);.|
|00001880| 0d 09 69 66 20 28 65 6d | 64 70 2d 3e 75 73 65 62 |..if (em|dp->useb|
|00001890| 70 6f 72 74 29 20 7b 0d | 09 09 70 72 69 6e 74 65 |port) {.|..printe|
|000018a0| 72 62 75 73 79 20 3d 20 | 65 6d 64 70 3b 0d 09 09 |rbusy = |emdp;...|
|000018b0| 70 72 69 6e 74 6f 70 65 | 6e 65 64 20 3d 20 54 52 |printope|ned = TR|
|000018c0| 55 45 3b 0d 09 7d 0d 09 | 65 6c 73 65 20 7b 0d 09 |UE;..}..|else {..|
|000018d0| 09 6d 6f 64 65 6d 62 75 | 73 79 20 3d 20 65 6d 64 |.modembu|sy = emd|
|000018e0| 70 3b 0d 09 09 6d 6f 64 | 65 6d 6f 70 65 6e 65 64 |p;...mod|emopened|
|000018f0| 20 3d 20 54 52 55 45 3b | 0d 09 7d 0d 09 0d 09 73 | = TRUE;|..}....s|
|00001900| 65 72 6d 65 6e 75 73 65 | 74 28 29 3b 0d 09 0d 09 |ermenuse|t();....|
|00001910| 69 66 20 28 73 65 74 75 | 70 70 6f 72 74 28 29 29 |if (setu|pport())|
|00001920| 0d 09 09 72 65 74 75 72 | 6e 28 2d 31 29 3b 0d 09 |...retur|n(-1);..|
|00001930| 09 0d 09 65 6d 64 70 2d | 3e 78 6f 6e 20 3d 20 54 |...emdp-|>xon = T|
|00001940| 52 55 45 3b 0d 09 65 6d | 64 70 2d 3e 75 63 62 2e |RUE;..em|dp->ucb.|
|00001950| 75 5f 73 65 6e 64 6d 20 | 3d 20 45 56 45 52 59 43 |u_sendm |= EVERYC|
|00001960| 3b 09 09 2f 2a 20 61 73 | 63 69 69 74 6f 6b 65 6e |;../* as|ciitoken|
|00001970| 2d 2d 73 65 6e 64 20 70 | 72 6f 6d 70 74 6c 79 20 |--send p|romptly |
|00001980| 2a 2f 0d 0d 09 74 69 63 | 6b 73 65 72 69 61 6c 20 |*/...tic|kserial |
|00001990| 3d 20 63 74 69 63 6b 73 | 20 2b 20 32 3b 0d 09 69 |= cticks| + 2;..i|
|000019a0| 66 20 28 74 69 63 6b 73 | 65 72 69 61 6c 20 3d 3d |f (ticks|erial ==|
|000019b0| 20 30 29 0d 09 09 74 69 | 63 6b 73 65 72 69 61 6c | 0)...ti|ckserial|
|000019c0| 2b 2b 3b 0d 09 09 2f 2a | 20 73 74 61 72 74 20 75 |++;.../*| start u|
|000019d0| 70 20 74 69 63 6b 20 63 | 6f 75 6e 74 65 72 20 66 |p tick c|ounter f|
|000019e0| 6f 72 20 73 65 72 76 69 | 63 65 20 2a 2f 0d 09 09 |or servi|ce */...|
|000019f0| 0d 09 72 65 74 75 72 6e | 28 30 29 3b 0d 7d 0d 0d |..return|(0);.}..|
|00001a00| 0d 73 65 74 75 70 70 6f | 72 74 28 29 0d 7b 0d 09 |.setuppo|rt().{..|
|00001a10| 69 6e 74 20 73 65 72 63 | 6f 6e 66 3b 0d 0d 09 69 |int serc|onf;...i|
|00001a20| 66 20 28 21 65 6d 64 70 | 2d 3e 72 65 66 69 6e 29 |f (!emdp|->refin)|
|00001a30| 0d 09 09 72 65 74 75 72 | 6e 28 2d 31 29 3b 0d 0d |...retur|n(-1);..|
|00001a40| 09 73 65 72 63 6f 6e 66 | 20 3d 20 30 3b 0d 09 73 |.serconf| = 0;..s|
|00001a50| 65 72 63 6f 6e 66 20 3d | 20 65 6d 64 70 2d 3e 62 |erconf =| emdp->b|
|00001a60| 61 75 64 20 0d 09 09 09 | 09 7c 20 65 6d 64 70 2d |aud ....|.| emdp-|
|00001a70| 3e 70 61 72 69 74 79 20 | 0d 09 09 09 09 7c 20 65 |>parity |.....| e|
|00001a80| 6d 64 70 2d 3e 73 74 6f | 70 20 0d 09 09 09 09 7c |mdp->sto|p .....||
|00001a90| 20 65 6d 64 70 2d 3e 64 | 61 74 61 3b 0d 09 0d 09 | emdp->d|ata;....|
|00001aa0| 69 66 20 28 53 65 72 52 | 65 73 65 74 28 65 6d 64 |if (SerR|eset(emd|
|00001ab0| 70 2d 3e 72 65 66 6f 75 | 74 2c 20 73 65 72 63 6f |p->refou|t, serco|
|00001ac0| 6e 66 29 20 7c 7c 20 53 | 65 72 52 65 73 65 74 28 |nf) || S|erReset(|
|00001ad0| 65 6d 64 70 2d 3e 72 65 | 66 69 6e 2c 20 73 65 72 |emdp->re|fin, ser|
|00001ae0| 63 6f 6e 66 29 29 20 7b | 0d 09 09 65 72 72 6f 72 |conf)) {|...error|
|00001af0| 28 22 43 61 6e 27 74 20 | 63 6f 6e 66 69 67 75 72 |("Can't |configur|
|00001b00| 65 20 73 65 72 69 61 6c | 20 70 6f 72 74 22 29 3b |e serial| port");|
|00001b10| 0d 09 09 72 65 74 75 72 | 6e 28 2d 31 29 3b 0d 09 |...retur|n(-1);..|
|00001b20| 7d 0d 09 72 65 74 75 72 | 6e 28 30 29 3b 0d 7d 0d |}..retur|n(0);.}.|
|00001b30| 0d 0d 0d 6c 6f 63 61 6c | 63 6f 6e 66 69 67 28 29 |...local|config()|
|00001b40| 0d 7b 0d 09 48 61 6e 64 | 6c 65 20 68 63 6f 6e 66 |.{..Hand|le hconf|
|00001b50| 69 67 3b 0d 09 73 74 72 | 75 63 74 20 73 65 72 63 |ig;..str|uct serc|
|00001b60| 6f 6e 66 69 67 20 2a 20 | 63 6f 6e 66 70 3b 0d 0d |onfig * |confp;..|
|00001b70| 09 69 66 20 28 28 68 63 | 6f 6e 66 69 67 20 3d 20 |.if ((hc|onfig = |
|00001b80| 47 65 74 31 52 65 73 6f | 75 72 63 65 28 27 43 4f |Get1Reso|urce('CO|
|00001b90| 4e 46 27 2c 20 53 45 52 | 43 4f 4e 46 49 44 29 29 |NF', SER|CONFID))|
|00001ba0| 20 3d 3d 20 28 48 61 6e | 64 6c 65 29 20 4e 55 4c | == (Han|dle) NUL|
|00001bb0| 4c 29 20 7b 0d 09 09 2f | 2a 20 6e 6f 20 63 6f 6e |L) {.../|* no con|
|00001bc0| 66 69 67 75 72 61 74 69 | 6f 6e 20 72 65 73 6f 75 |figurati|on resou|
|00001bd0| 72 63 65 20 65 78 69 73 | 74 73 20 2a 2f 0d 0d 09 |rce exis|ts */...|
|00001be0| 09 65 6d 64 70 2d 3e 75 | 73 65 62 70 6f 72 74 20 |.emdp->u|sebport |
|00001bf0| 3d 20 4e 4f 50 4f 52 54 | 3b 0d 0d 09 09 65 6d 64 |= NOPORT|;....emd|
|00001c00| 70 2d 3e 62 61 75 64 20 | 3d 20 62 61 75 64 39 36 |p->baud |= baud96|
|00001c10| 30 30 3b 0d 09 09 65 6d | 64 70 2d 3e 70 61 72 69 |00;...em|dp->pari|
|00001c20| 74 79 20 3d 20 6e 6f 50 | 61 72 69 74 79 3b 0d 09 |ty = noP|arity;..|
|00001c30| 09 65 6d 64 70 2d 3e 73 | 74 6f 70 20 3d 20 73 74 |.emdp->s|top = st|
|00001c40| 6f 70 32 30 3b 0d 09 09 | 65 6d 64 70 2d 3e 64 61 |op20;...|emdp->da|
|00001c50| 74 61 20 3d 20 64 61 74 | 61 38 3b 0d 09 09 65 6d |ta = dat|a8;...em|
|00001c60| 64 70 2d 3e 64 61 74 61 | 20 3d 20 64 61 74 61 38 |dp->data| = data8|
|00001c70| 3b 0d 09 09 0d 09 09 2f | 2a 20 77 61 69 74 20 75 |;....../|* wait u|
|00001c80| 6e 74 69 6c 20 75 73 65 | 72 20 64 65 73 69 72 65 |ntil use|r desire|
|00001c90| 73 20 74 6f 20 6f 70 65 | 6e 20 64 72 69 76 65 72 |s to ope|n driver|
|00001ca0| 20 2a 2f 0d 09 7d 0d 09 | 65 6c 73 65 20 7b 0d 09 | */..}..|else {..|
|00001cb0| 09 63 6f 6e 66 70 20 3d | 20 28 73 74 72 75 63 74 |.confp =| (struct|
|00001cc0| 20 63 6f 6e 66 69 67 20 | 2a 29 20 2a 68 63 6f 6e | config |*) *hcon|
|00001cd0| 66 69 67 3b 20 0d 0d 09 | 09 65 6d 64 70 2d 3e 75 |fig; ...|.emdp->u|
|00001ce0| 73 65 62 70 6f 72 74 20 | 3d 20 63 6f 6e 66 70 2d |sebport |= confp-|
|00001cf0| 3e 63 70 6f 72 74 3b 0d | 09 09 0d 09 09 65 6d 64 |>cport;.|.....emd|
|00001d00| 70 2d 3e 62 61 75 64 20 | 3d 20 63 6f 6e 66 70 2d |p->baud |= confp-|
|00001d10| 3e 63 62 61 75 64 3b 0d | 09 09 65 6d 64 70 2d 3e |>cbaud;.|..emdp->|
|00001d20| 70 61 72 69 74 79 20 3d | 20 63 6f 6e 66 70 2d 3e |parity =| confp->|
|00001d30| 63 70 61 72 69 74 79 3b | 0d 09 09 65 6d 64 70 2d |cparity;|...emdp-|
|00001d40| 3e 73 74 6f 70 20 3d 20 | 63 6f 6e 66 70 2d 3e 63 |>stop = |confp->c|
|00001d50| 73 74 6f 70 3b 0d 09 09 | 65 6d 64 70 2d 3e 64 61 |stop;...|emdp->da|
|00001d60| 74 61 20 3d 20 63 6f 6e | 66 70 2d 3e 63 64 61 74 |ta = con|fp->cdat|
|00001d70| 61 3b 0d 0d 09 09 52 65 | 6c 65 61 73 65 52 65 73 |a;....Re|leaseRes|
|00001d80| 6f 75 72 63 65 28 68 63 | 6f 6e 66 69 67 29 3b 0d |ource(hc|onfig);.|
|00001d90| 09 7d 0d 7d 0d 0d 0d 73 | 65 74 6c 6f 63 61 6c 63 |.}.}...s|etlocalc|
|00001da0| 6f 6e 66 69 67 28 29 0d | 7b 0d 09 73 74 72 75 63 |onfig().|{..struc|
|00001db0| 74 20 73 65 72 63 6f 6e | 66 69 67 20 2a 20 63 6f |t sercon|fig * co|
|00001dc0| 6e 66 70 3b 0d 09 48 61 | 6e 64 6c 65 20 68 63 6f |nfp;..Ha|ndle hco|
|00001dd0| 6e 66 69 67 3b 0d 0d 09 | 69 66 20 28 28 68 63 6f |nfig;...|if ((hco|
|00001de0| 6e 66 69 67 20 3d 20 47 | 65 74 31 52 65 73 6f 75 |nfig = G|et1Resou|
|00001df0| 72 63 65 28 27 43 4f 4e | 46 27 2c 20 53 45 52 43 |rce('CON|F', SERC|
|00001e00| 4f 4e 46 49 44 29 29 20 | 21 3d 20 4e 55 4c 4c 29 |ONFID)) |!= NULL)|
|00001e10| 20 7b 0d 09 09 2f 2a 20 | 6b 69 6c 6c 20 63 75 72 | {.../* |kill cur|
|00001e20| 72 65 6e 74 20 76 65 72 | 73 69 6f 6e 20 2a 2f 0d |rent ver|sion */.|
|00001e30| 09 09 52 6d 76 65 52 65 | 73 6f 75 72 63 65 28 68 |..RmveRe|source(h|
|00001e40| 63 6f 6e 66 69 67 29 3b | 0d 09 09 55 70 64 61 74 |config);|...Updat|
|00001e50| 65 52 65 73 46 69 6c 65 | 28 65 6d 64 70 2d 3e 72 |eResFile|(emdp->r|
|00001e60| 65 73 66 69 64 29 3b 0d | 09 09 44 69 73 70 6f 73 |esfid);.|..Dispos|
|00001e70| 48 61 6e 64 6c 65 28 68 | 63 6f 6e 66 69 67 29 3b |Handle(h|config);|
|00001e80| 0d 09 7d 0d 09 2f 2a 20 | 61 64 64 20 6e 65 77 20 |..}../* |add new |
|00001e90| 72 65 73 6f 75 72 63 65 | 20 2a 2f 0d 09 68 63 6f |resource| */..hco|
|00001ea0| 6e 66 69 67 20 3d 20 4e | 65 77 48 61 6e 64 6c 65 |nfig = N|ewHandle|
|00001eb0| 28 28 53 69 7a 65 29 20 | 73 69 7a 65 6f 66 28 73 |((Size) |sizeof(s|
|00001ec0| 74 72 75 63 74 20 73 65 | 72 63 6f 6e 66 69 67 29 |truct se|rconfig)|
|00001ed0| 29 3b 0d 09 69 66 20 28 | 68 63 6f 6e 66 69 67 20 |);..if (|hconfig |
|00001ee0| 3d 3d 20 4e 55 4c 4c 29 | 20 7b 0d 09 09 65 72 72 |== NULL)| {...err|
|00001ef0| 6f 72 28 22 4f 75 74 20 | 6f 66 20 6d 65 6d 6f 72 |or("Out |of memor|
|00001f00| 79 22 29 3b 0d 09 09 72 | 65 74 75 72 6e 28 2d 31 |y");...r|eturn(-1|
|00001f10| 29 3b 0d 09 7d 0d 09 09 | 0d 09 41 64 64 52 65 73 |);..}...|..AddRes|
|00001f20| 6f 75 72 63 65 28 68 63 | 6f 6e 66 69 67 2c 20 27 |ource(hc|onfig, '|
|00001f30| 43 4f 4e 46 27 2c 20 53 | 45 52 43 4f 4e 46 49 44 |CONF', S|ERCONFID|
|00001f40| 2c 20 22 5c 50 22 29 3b | 0d 09 69 66 20 28 52 65 |, "\P");|..if (Re|
|00001f50| 73 45 72 72 6f 72 28 29 | 29 20 7b 0d 09 09 65 72 |sError()|) {...er|
|00001f60| 72 6f 72 28 22 43 61 6e | 27 74 20 63 72 65 61 74 |ror("Can|'t creat|
|00001f70| 65 20 43 4f 4e 46 20 31 | 20 72 65 73 6f 75 72 63 |e CONF 1| resourc|
|00001f80| 65 22 29 3b 0d 09 09 72 | 65 74 75 72 6e 28 2d 31 |e");...r|eturn(-1|
|00001f90| 29 3b 0d 09 7d 0d 0d 09 | 2f 2a 20 73 65 74 20 69 |);..}...|/* set i|
|00001fa0| 74 20 2a 2f 0d 09 48 4c | 6f 63 6b 28 68 63 6f 6e |t */..HL|ock(hcon|
|00001fb0| 66 69 67 29 3b 0d 0d 09 | 63 6f 6e 66 70 20 3d 20 |fig);...|confp = |
|00001fc0| 28 73 74 72 75 63 74 20 | 63 6f 6e 66 69 67 20 2a |(struct |config *|
|00001fd0| 29 20 2a 68 63 6f 6e 66 | 69 67 3b 20 0d 09 63 6f |) *hconf|ig; ..co|
|00001fe0| 6e 66 70 2d 3e 63 70 6f | 72 74 20 3d 20 65 6d 64 |nfp->cpo|rt = emd|
|00001ff0| 70 2d 3e 75 73 65 62 70 | 6f 72 74 3b 0d 09 63 6f |p->usebp|ort;..co|
|00002000| 6e 66 70 2d 3e 63 62 61 | 75 64 20 3d 20 65 6d 64 |nfp->cba|ud = emd|
|00002010| 70 2d 3e 62 61 75 64 3b | 0d 09 63 6f 6e 66 70 2d |p->baud;|..confp-|
|00002020| 3e 63 70 61 72 69 74 79 | 20 3d 20 65 6d 64 70 2d |>cparity| = emdp-|
|00002030| 3e 70 61 72 69 74 79 3b | 0d 09 63 6f 6e 66 70 2d |>parity;|..confp-|
|00002040| 3e 63 73 74 6f 70 20 3d | 20 65 6d 64 70 2d 3e 73 |>cstop =| emdp->s|
|00002050| 74 6f 70 3b 0d 09 63 6f | 6e 66 70 2d 3e 63 64 61 |top;..co|nfp->cda|
|00002060| 74 61 20 3d 20 65 6d 64 | 70 2d 3e 64 61 74 61 3b |ta = emd|p->data;|
|00002070| 0d 0d 09 48 55 6e 6c 6f | 63 6b 28 68 63 6f 6e 66 |...HUnlo|ck(hconf|
|00002080| 69 67 29 3b 0d 09 43 68 | 61 6e 67 65 64 52 65 73 |ig);..Ch|angedRes|
|00002090| 6f 75 72 63 65 28 68 63 | 6f 6e 66 69 67 29 3b 0d |ource(hc|onfig);.|
|000020a0| 09 55 70 64 61 74 65 52 | 65 73 46 69 6c 65 28 65 |.UpdateR|esFile(e|
|000020b0| 6d 64 70 2d 3e 72 65 73 | 66 69 64 29 3b 20 0d 09 |mdp->res|fid); ..|
|000020c0| 69 66 20 28 52 65 73 45 | 72 72 6f 72 28 29 29 20 |if (ResE|rror()) |
|000020d0| 7b 0d 09 09 65 72 72 6f | 72 28 22 4e 6f 20 73 65 |{...erro|r("No se|
|000020e0| 72 69 61 6c 20 63 6f 6e | 66 69 67 75 72 61 74 69 |rial con|figurati|
|000020f0| 6f 6e 20 75 70 64 61 74 | 65 22 29 3b 0d 09 09 72 |on updat|e");...r|
|00002100| 65 74 75 72 6e 28 2d 31 | 29 3b 0d 09 7d 0d 09 52 |eturn(-1|);..}..R|
|00002110| 65 6c 65 61 73 65 52 65 | 73 6f 75 72 63 65 28 68 |eleaseRe|source(h|
|00002120| 63 6f 6e 66 69 67 29 3b | 0d 7d 0d 0d 0d 70 6f 72 |config);|.}...por|
|00002130| 74 65 72 72 28 63 6f 64 | 65 29 0d 69 6e 74 20 63 |terr(cod|e).int c|
|00002140| 6f 64 65 3b 0d 7b 0d 09 | 65 6d 64 70 2d 3e 72 65 |ode;.{..|emdp->re|
|00002150| 66 69 6e 20 3d 20 65 6d | 64 70 2d 3e 72 65 66 6f |fin = em|dp->refo|
|00002160| 75 74 20 3d 20 30 3b 0d | 09 69 66 20 28 65 6d 64 |ut = 0;.|.if (emd|
|00002170| 70 2d 3e 75 73 65 62 70 | 6f 72 74 29 0d 09 09 65 |p->usebp|ort)...e|
|00002180| 72 72 6f 72 28 22 54 68 | 65 20 50 72 69 6e 74 65 |rror("Th|e Printe|
|00002190| 72 20 50 6f 72 74 20 63 | 61 6e 27 74 20 62 65 20 |r Port c|an't be |
|000021a0| 75 73 65 64 2d 2d 69 73 | 20 41 70 70 6c 65 54 61 |used--is| AppleTa|
|000021b0| 6c 6b 20 6f 66 66 3f 22 | 29 3b 0d 09 65 6c 73 65 |lk off?"|);..else|
|000021c0| 0d 09 09 65 72 72 6f 72 | 28 22 54 68 65 20 4d 6f |...error|("The Mo|
|000021d0| 64 65 6d 20 50 6f 72 74 | 20 63 61 6e 27 74 20 62 |dem Port| can't b|
|000021e0| 65 20 75 73 65 64 22 29 | 3b 0d 7d 0d 0d 0d 63 6c |e used")|;.}...cl|
|000021f0| 6f 73 65 73 65 72 70 6f | 72 74 28 74 77 70 29 0d |oseserpo|rt(twp).|
|00002200| 73 74 72 75 63 74 20 77 | 69 6e 64 73 20 2a 20 74 |struct w|inds * t|
|00002210| 77 70 3b 0d 7b 0d 09 69 | 66 20 28 21 74 77 70 2d |wp;.{..i|f (!twp-|
|00002220| 3e 72 65 66 69 6e 29 0d | 09 09 72 65 74 75 72 6e |>refin).|..return|
|00002230| 3b 0d 09 09 0d 09 69 66 | 20 28 74 77 70 2d 3e 61 |;.....if| (twp->a|
|00002240| 75 74 6f 68 61 6e 67 75 | 70 29 0d 09 09 43 6f 6e |utohangu|p)...Con|
|00002250| 74 72 6f 6c 28 74 77 70 | 2d 3e 72 65 66 6f 75 74 |trol(twp|->refout|
|00002260| 2c 20 31 38 2c 20 28 50 | 74 72 29 20 4e 55 4c 4c |, 18, (P|tr) NULL|
|00002270| 29 3b 0d 0d 09 69 66 20 | 28 74 77 70 2d 3e 75 73 |);...if |(twp->us|
|00002280| 65 62 70 6f 72 74 29 20 | 7b 0d 09 09 69 66 20 28 |ebport) |{...if (|
|00002290| 21 6e 6f 73 65 72 64 29 | 0d 09 09 09 52 41 4d 53 |!noserd)|....RAMS|
|000022a0| 44 43 6c 6f 73 65 28 73 | 50 6f 72 74 42 29 3b 0d |DClose(s|PortB);.|
|000022b0| 09 09 65 6c 73 65 20 7b | 0d 09 09 09 43 6c 6f 73 |..else {|....Clos|
|000022c0| 65 44 72 69 76 65 72 28 | 74 77 70 2d 3e 72 65 66 |eDriver(|twp->ref|
|000022d0| 6f 75 74 29 3b 0d 09 09 | 7d 0d 09 09 70 72 69 6e |out);...|}...prin|
|000022e0| 74 65 72 62 75 73 79 20 | 3d 20 4e 55 4c 4c 3b 0d |terbusy |= NULL;.|
|000022f0| 09 7d 0d 09 65 6c 73 65 | 20 7b 0d 09 09 69 66 20 |.}..else| {...if |
|00002300| 28 21 6e 6f 73 65 72 64 | 29 0d 09 09 09 52 41 4d |(!noserd|)....RAM|
|00002310| 53 44 43 6c 6f 73 65 28 | 73 50 6f 72 74 41 29 3b |SDClose(|sPortA);|
|00002320| 0d 09 09 65 6c 73 65 20 | 7b 0d 09 09 09 43 6c 6f |...else |{....Clo|
|00002330| 73 65 44 72 69 76 65 72 | 28 74 77 70 2d 3e 72 65 |seDriver|(twp->re|
|00002340| 66 6f 75 74 29 3b 0d 09 | 09 7d 0d 09 09 6d 6f 64 |fout);..|.}...mod|
|00002350| 65 6d 62 75 73 79 20 3d | 20 4e 55 4c 4c 3b 0d 09 |embusy =| NULL;..|
|00002360| 7d 0d 09 74 77 70 2d 3e | 72 65 66 69 6e 20 3d 20 |}..twp->|refin = |
|00002370| 74 77 70 2d 3e 72 65 66 | 6f 75 74 20 3d 20 30 3b |twp->ref|out = 0;|
|00002380| 0d 7d 0d 0d 0d 6f 6d 6e | 69 5f 74 65 73 74 28 29 |.}...omn|i_test()|
|00002390| 0d 7b 0d 09 69 6e 74 20 | 72 65 66 6e 75 6d 3b 0d |.{..int |refnum;.|
|000023a0| 0d 09 69 66 20 28 21 4f | 70 65 6e 44 72 69 76 65 |..if (!O|penDrive|
|000023b0| 72 28 22 5c 50 2e 4f 6d | 6e 69 44 72 69 76 65 72 |r("\P.Om|niDriver|
|000023c0| 22 2c 20 26 72 65 66 6e | 75 6d 29 29 20 7b 0d 09 |", &refn|um)) {..|
|000023d0| 09 43 6c 6f 73 65 44 72 | 69 76 65 72 28 72 65 66 |.CloseDr|iver(ref|
|000023e0| 6e 75 6d 29 3b 0d 09 09 | 72 65 74 75 72 6e 28 54 |num);...|return(T|
|000023f0| 52 55 45 29 3b 0d 09 7d | 0d 09 65 6c 73 65 0d 09 |RUE);..}|..else..|
|00002400| 09 72 65 74 75 72 6e 28 | 46 41 4c 53 45 29 3b 0d |.return(|FALSE);.|
|00002410| 7d 0d 0d 0d 2f 2a 20 70 | 75 74 20 6f 75 74 20 61 |}.../* p|ut out a|
|00002420| 20 63 68 61 72 61 63 74 | 65 72 20 2a 2f 0d 0d 73 | charact|er */..s|
|00002430| 65 72 70 75 74 63 68 61 | 72 28 74 68 65 63 68 61 |erputcha|r(thecha|
|00002440| 72 29 0d 63 68 61 72 20 | 74 68 65 63 68 61 72 3b |r).char |thechar;|
|00002450| 0d 7b 0d 09 6c 6f 6e 67 | 20 63 6f 75 6e 74 20 3d |.{..long| count =|
|00002460| 20 31 3b 0d 0d 09 69 66 | 20 28 21 65 6d 64 70 2d | 1;...if| (!emdp-|
|00002470| 3e 72 65 66 6f 75 74 29 | 0d 09 09 72 65 74 75 72 |>refout)|...retur|
|00002480| 6e 28 2d 31 29 3b 0d 0d | 09 73 65 72 69 61 6c 77 |n(-1);..|.serialw|
|00002490| 61 69 74 20 3d 20 30 3b | 0d 0d 09 46 53 57 72 69 |ait = 0;|...FSWri|
|000024a0| 74 65 28 65 6d 64 70 2d | 3e 72 65 66 6f 75 74 2c |te(emdp-|>refout,|
|000024b0| 20 26 63 6f 75 6e 74 2c | 20 26 74 68 65 63 68 61 | &count,| &thecha|
|000024c0| 72 29 3b 0d 09 2b 2b 65 | 6d 64 70 2d 3e 6f 75 74 |r);..++e|mdp->out|
|000024d0| 5f 63 6e 74 3b 0d 09 72 | 65 74 75 72 6e 28 30 29 |_cnt;..r|eturn(0)|
|000024e0| 3b 0d 7d 0d 0d 0d 2f 2a | 20 75 70 64 61 74 65 20 |;.}.../*| update |
|000024f0| 74 68 65 20 63 6f 75 6e | 74 65 72 2c 20 6e 6f 74 |the coun|ter, not|
|00002500| 68 69 6e 67 20 65 6c 73 | 65 20 6e 65 65 64 65 64 |hing els|e needed|
|00002510| 20 2a 2f 0d 0d 73 65 72 | 70 75 74 66 6c 75 73 68 | */..ser|putflush|
|00002520| 28 29 0d 7b 0d 09 64 72 | 61 77 6f 75 74 63 6f 75 |().{..dr|awoutcou|
|00002530| 6e 74 28 29 3b 0d 7d 0d | 0d 0d 73 65 72 73 65 6e |nt();.}.|..sersen|
|00002540| 64 73 74 72 28 73 74 72 | 70 29 0d 63 68 61 72 20 |dstr(str|p).char |
|00002550| 2a 20 73 74 72 70 3b 0d | 7b 0d 09 6c 6f 6e 67 20 |* strp;.|{..long |
|00002560| 63 6f 75 6e 74 3b 0d 0d | 09 73 65 72 69 61 6c 77 |count;..|.serialw|
|00002570| 61 69 74 20 3d 20 30 3b | 0d 09 0d 09 63 6f 75 6e |ait = 0;|....coun|
|00002580| 74 20 3d 20 73 74 72 6c | 65 6e 28 73 74 72 70 29 |t = strl|en(strp)|
|00002590| 3b 0d 09 46 53 57 72 69 | 74 65 28 65 6d 64 70 2d |;..FSWri|te(emdp-|
|000025a0| 3e 72 65 66 6f 75 74 2c | 20 26 63 6f 75 6e 74 2c |>refout,| &count,|
|000025b0| 20 73 74 72 70 29 3b 0d | 09 65 6d 64 70 2d 3e 6f | strp);.|.emdp->o|
|000025c0| 75 74 5f 63 6e 74 20 2b | 3d 20 63 6f 75 6e 74 3b |ut_cnt +|= count;|
|000025d0| 0d 09 64 72 61 77 6f 75 | 74 63 6f 75 6e 74 28 29 |..drawou|tcount()|
|000025e0| 3b 0d 7d 0d 0d 0d 2f 2a | 20 73 65 6e 64 20 61 20 |;.}.../*| send a |
|000025f0| 62 6c 6f 63 6b 20 2a 2f | 0d 0d 73 65 72 73 65 6e |block */|..sersen|
|00002600| 64 63 6f 75 6e 74 28 73 | 74 72 70 2c 20 73 74 72 |dcount(s|trp, str|
|00002610| 63 6f 75 6e 74 29 0d 63 | 68 61 72 20 2a 20 73 74 |count).c|har * st|
|00002620| 72 70 3b 0d 73 68 6f 72 | 74 20 73 74 72 63 6f 75 |rp;.shor|t strcou|
|00002630| 6e 74 3b 0d 7b 0d 09 6c | 6f 6e 67 20 63 6f 75 6e |nt;.{..l|ong coun|
|00002640| 74 20 3d 20 73 74 72 63 | 6f 75 6e 74 3b 0d 0d 09 |t = strc|ount;...|
|00002650| 73 65 72 69 61 6c 77 61 | 69 74 20 3d 20 30 3b 0d |serialwa|it = 0;.|
|00002660| 09 0d 09 46 53 57 72 69 | 74 65 28 65 6d 64 70 2d |...FSWri|te(emdp-|
|00002670| 3e 72 65 66 6f 75 74 2c | 20 26 63 6f 75 6e 74 2c |>refout,| &count,|
|00002680| 20 73 74 72 70 29 3b 0d | 09 65 6d 64 70 2d 3e 6f | strp);.|.emdp->o|
|00002690| 75 74 5f 63 6e 74 20 2b | 3d 20 63 6f 75 6e 74 3b |ut_cnt +|= count;|
|000026a0| 0d 09 64 72 61 77 6f 75 | 74 63 6f 75 6e 74 28 29 |..drawou|tcount()|
|000026b0| 3b 0d 7d 0d 0d 0d 73 65 | 72 73 65 6e 64 42 72 65 |;.}...se|rsendBre|
|000026c0| 61 6b 28 29 0d 7b 0d 09 | 6c 6f 6e 67 20 74 69 63 |ak().{..|long tic|
|000026d0| 6b 73 3b 0d 0d 09 53 65 | 72 53 65 74 42 72 6b 28 |ks;...Se|rSetBrk(|
|000026e0| 65 6d 64 70 2d 3e 72 65 | 66 6f 75 74 29 3b 0d 09 |emdp->re|fout);..|
|000026f0| 44 65 6c 61 79 28 28 6c | 6f 6e 67 29 20 33 30 2c |Delay((l|ong) 30,|
|00002700| 20 26 74 69 63 6b 73 29 | 3b 0d 09 53 65 72 43 6c | &ticks)|;..SerCl|
|00002710| 72 42 72 6b 28 65 6d 64 | 70 2d 3e 72 65 66 6f 75 |rBrk(emd|p->refou|
|00002720| 74 29 3b 0d 7d 0d 0d 0d | 2f 2a 20 72 6f 75 74 69 |t);.}...|/* routi|
|00002730| 6e 65 73 20 66 6f 6c 6c | 6f 77 20 74 6f 20 68 61 |nes foll|ow to ha|
|00002740| 6e 64 6c 65 20 6d 65 6e | 75 73 20 74 68 61 74 20 |ndle men|us that |
|00002750| 63 6f 6e 74 72 6f 6c 20 | 74 68 65 20 73 65 72 69 |control |the seri|
|00002760| 61 6c 20 70 6f 72 74 20 | 2a 2f 0d 0d 6d 65 6e 75 |al port |*/..menu|
|00002770| 73 65 72 69 61 6c 28 74 | 68 65 49 74 65 6d 29 0d |serial(t|heItem).|
|00002780| 73 68 6f 72 74 20 74 68 | 65 49 74 65 6d 3b 0d 7b |short th|eItem;.{|
|00002790| 0d 09 2f 2a 20 72 65 73 | 65 74 20 64 61 74 61 2c |../* res|et data,|
|000027a0| 20 70 61 72 69 74 79 2c | 20 61 6e 64 20 73 74 6f | parity,| and sto|
|000027b0| 70 20 62 69 74 20 73 65 | 74 74 69 6e 67 73 20 2a |p bit se|ttings *|
|000027c0| 2f 0d 09 0d 09 69 66 20 | 28 74 68 65 49 74 65 6d |/....if |(theItem|
|000027d0| 20 3d 3d 20 53 45 52 50 | 4f 52 54 52 45 53 45 54 | == SERP|ORTRESET|
|000027e0| 29 20 7b 0d 09 09 53 79 | 73 50 74 72 09 73 79 73 |) {...Sy|sPtr.sys|
|000027f0| 70 61 72 61 6d 3b 0d 09 | 09 0d 09 09 73 79 73 70 |param;..|....sysp|
|00002800| 61 72 61 6d 20 3d 20 47 | 65 74 53 79 73 50 50 74 |aram = G|etSysPPt|
|00002810| 72 28 29 3b 0d 09 09 69 | 66 20 28 65 6d 64 70 2d |r();...i|f (emdp-|
|00002820| 3e 75 73 65 62 70 6f 72 | 74 29 0d 09 09 09 73 79 |>usebpor|t)....sy|
|00002830| 73 70 61 72 61 6d 2d 3e | 76 61 6c 69 64 20 26 3d |sparam->|valid &=|
|00002840| 20 30 78 46 46 46 46 46 | 46 46 30 3b 09 2f 2a 20 | 0xFFFFF|FF0;./* |
|00002850| 62 6c 61 6e 6b 20 6f 75 | 74 20 50 72 69 6e 74 65 |blank ou|t Printe|
|00002860| 72 20 50 6f 72 74 20 63 | 6f 6e 66 69 67 75 72 61 |r Port c|onfigura|
|00002870| 74 69 6f 6e 20 2a 2f 0d | 09 09 65 6c 73 65 0d 09 |tion */.|..else..|
|00002880| 09 09 73 79 73 70 61 72 | 61 6d 2d 3e 76 61 6c 69 |..syspar|am->vali|
|00002890| 64 20 26 3d 20 30 78 46 | 46 46 46 46 46 30 46 3b |d &= 0xF|FFFFF0F;|
|000028a0| 09 2f 2a 20 62 6c 61 6e | 6b 20 6f 75 74 20 4d 6f |./* blan|k out Mo|
|000028b0| 64 65 6d 20 50 6f 72 74 | 20 63 6f 6e 66 69 67 75 |dem Port| configu|
|000028c0| 72 61 74 69 6f 6e 20 2a | 2f 0d 0d 09 09 69 66 20 |ration *|/....if |
|000028d0| 28 57 72 69 74 65 50 61 | 72 61 6d 28 29 29 09 09 |(WritePa|ram())..|
|000028e0| 09 09 2f 2a 20 73 61 76 | 65 20 74 68 65 20 72 65 |../* sav|e the re|
|000028f0| 73 65 74 20 63 6f 6e 66 | 69 67 75 72 61 74 69 6f |set conf|iguratio|
|00002900| 6e 20 2a 2f 0d 09 09 09 | 65 72 72 6f 72 28 22 43 |n */....|error("C|
|00002910| 6f 75 6c 64 6e 27 74 20 | 75 70 64 61 74 65 20 70 |ouldn't |update p|
|00002920| 61 72 61 6d 65 74 65 72 | 20 52 41 4d 22 29 3b 0d |arameter| RAM");.|
|00002930| 09 09 72 65 74 75 72 6e | 28 54 52 55 45 29 3b 0d |..return|(TRUE);.|
|00002940| 09 7d 0d 09 65 6c 73 65 | 20 69 66 20 28 74 68 65 |.}..else| if (the|
|00002950| 49 74 65 6d 20 3d 3d 20 | 53 45 52 50 4f 52 54 48 |Item == |SERPORTH|
|00002960| 41 4e 47 55 50 29 20 7b | 0d 09 09 73 65 72 68 61 |ANGUP) {|...serha|
|00002970| 6e 67 75 70 28 6b 65 79 | 64 70 29 3b 0d 09 09 72 |ngup(key|dp);...r|
|00002980| 65 74 75 72 6e 28 54 52 | 55 45 29 3b 0d 09 7d 0d |eturn(TR|UE);..}.|
|00002990| 09 65 6c 73 65 20 69 66 | 20 28 74 68 65 49 74 65 |.else if| (theIte|
|000029a0| 6d 20 3d 3d 20 53 45 52 | 41 55 54 4f 48 41 4e 47 |m == SER|AUTOHANG|
|000029b0| 29 20 7b 0d 09 09 6b 65 | 79 64 70 2d 3e 61 75 74 |) {...ke|ydp->aut|
|000029c0| 6f 68 61 6e 67 75 70 20 | 3d 20 21 6b 65 79 64 70 |ohangup |= !keydp|
|000029d0| 2d 3e 61 75 74 6f 68 61 | 6e 67 75 70 3b 0d 09 09 |->autoha|ngup;...|
|000029e0| 6b 65 79 64 70 2d 3e 63 | 6f 6e 66 63 68 61 6e 67 |keydp->c|onfchang|
|000029f0| 65 64 20 3d 20 54 52 55 | 45 3b 0d 09 09 43 68 65 |ed = TRU|E;...Che|
|00002a00| 63 6b 49 74 65 6d 28 6d | 65 6e 75 5b 53 45 52 49 |ckItem(m|enu[SERI|
|00002a10| 41 4c 4d 45 4e 55 5d 2c | 20 53 45 52 41 55 54 4f |ALMENU],| SERAUTO|
|00002a20| 48 41 4e 47 2c 20 6b 65 | 79 64 70 2d 3e 61 75 74 |HANG, ke|ydp->aut|
|00002a30| 6f 68 61 6e 67 75 70 20 | 3f 20 28 42 6f 6f 6c 65 |ohangup |? (Boole|
|00002a40| 61 6e 29 20 54 52 55 45 | 20 3a 20 28 42 6f 6f 6c |an) TRUE| : (Bool|
|00002a50| 65 61 6e 29 20 46 41 4c | 53 45 29 3b 0d 09 09 72 |ean) FAL|SE);...r|
|00002a60| 65 74 75 72 6e 28 54 52 | 55 45 29 3b 0d 09 7d 0d |eturn(TR|UE);..}.|
|00002a70| 09 0d 09 67 65 74 63 6f | 6e 74 65 78 74 28 6b 65 |...getco|ntext(ke|
|00002a80| 79 64 70 29 3b 0d 09 0d | 09 73 77 69 74 63 68 20 |ydp);...|.switch |
|00002a90| 28 74 68 65 49 74 65 6d | 29 20 7b 0d 09 09 63 61 |(theItem|) {...ca|
|00002aa0| 73 65 20 53 45 52 53 45 | 4e 44 48 49 45 52 3a 20 |se SERSE|NDHIER: |
|00002ab0| 7b 0d 09 09 09 2f 2a 20 | 73 68 6f 75 6c 64 20 62 |{..../* |should b|
|00002ac0| 65 20 68 69 65 72 61 72 | 63 68 69 63 61 6c 2c 20 |e hierar|chical, |
|00002ad0| 66 6f 72 20 6e 6f 77 20 | 69 73 20 73 79 74 65 6b |for now |is sytek|
|00002ae0| 20 65 73 63 61 70 65 20 | 2a 2f 0d 09 09 09 28 2a | escape |*/....(*|
|00002af0| 65 6d 64 70 2d 3e 70 75 | 74 63 68 61 72 29 28 43 |emdp->pu|tchar)(C|
|00002b00| 54 4c 41 29 3b 0d 09 09 | 09 28 2a 65 6d 64 70 2d |TLA);...|.(*emdp-|
|00002b10| 3e 70 75 74 63 68 61 72 | 29 28 43 54 4c 42 29 3b |>putchar|)(CTLB);|
|00002b20| 0d 09 09 09 72 65 74 75 | 72 6e 28 54 52 55 45 29 |....retu|rn(TRUE)|
|00002b30| 3b 0d 09 09 7d 0d 09 09 | 63 61 73 65 20 42 41 55 |;...}...|case BAU|
|00002b40| 44 35 37 36 30 30 3a 0d | 09 09 63 61 73 65 20 42 |D57600:.|..case B|
|00002b50| 41 55 44 33 38 34 30 30 | 3a 0d 09 09 63 61 73 65 |AUD38400|:...case|
|00002b60| 20 42 41 55 44 31 39 32 | 30 30 3a 0d 09 09 63 61 | BAUD192|00:...ca|
|00002b70| 73 65 20 42 41 55 44 39 | 36 30 30 3a 0d 09 09 63 |se BAUD9|600:...c|
|00002b80| 61 73 65 20 42 41 55 44 | 34 38 30 30 3a 0d 09 09 |ase BAUD|4800:...|
|00002b90| 63 61 73 65 20 42 41 55 | 44 32 34 30 30 3a 0d 09 |case BAU|D2400:..|
|00002ba0| 09 63 61 73 65 20 42 41 | 55 44 31 32 30 30 3a 0d |.case BA|UD1200:.|
|00002bb0| 09 09 63 61 73 65 20 42 | 41 55 44 33 30 30 3a 0d |..case B|AUD300:.|
|00002bc0| 09 09 7b 0d 09 09 09 65 | 6d 64 70 2d 3e 62 61 75 |..{....e|mdp->bau|
|00002bd0| 64 20 3d 20 62 61 75 64 | 72 61 74 65 73 5b 74 68 |d = baud|rates[th|
|00002be0| 65 49 74 65 6d 20 2d 20 | 42 41 55 44 35 37 36 30 |eItem - |BAUD5760|
|00002bf0| 30 5d 3b 0d 09 09 09 62 | 72 65 61 6b 3b 0d 09 09 |0];....b|reak;...|
|00002c00| 7d 0d 09 09 63 61 73 65 | 20 44 41 54 41 36 3a 20 |}...case| DATA6: |
|00002c10| 7b 0d 09 09 09 65 6d 64 | 70 2d 3e 64 61 74 61 20 |{....emd|p->data |
|00002c20| 3d 20 64 61 74 61 36 3b | 0d 09 09 09 62 72 65 61 |= data6;|....brea|
|00002c30| 6b 3b 0d 09 09 7d 0d 09 | 09 63 61 73 65 20 44 41 |k;...}..|.case DA|
|00002c40| 54 41 37 3a 20 7b 0d 09 | 09 09 65 6d 64 70 2d 3e |TA7: {..|..emdp->|
|00002c50| 64 61 74 61 20 3d 20 64 | 61 74 61 37 3b 0d 09 09 |data = d|ata7;...|
|00002c60| 09 62 72 65 61 6b 3b 0d | 09 09 7d 0d 09 09 63 61 |.break;.|..}...ca|
|00002c70| 73 65 20 44 41 54 41 38 | 3a 20 7b 0d 09 09 09 65 |se DATA8|: {....e|
|00002c80| 6d 64 70 2d 3e 64 61 74 | 61 20 3d 20 64 61 74 61 |mdp->dat|a = data|
|00002c90| 38 3b 0d 09 09 09 62 72 | 65 61 6b 3b 0d 09 09 7d |8;....br|eak;...}|
|00002ca0| 0d 09 09 63 61 73 65 20 | 50 41 52 49 54 59 4e 4f |...case |PARITYNO|
|00002cb0| 4e 45 3a 20 7b 0d 09 09 | 09 65 6d 64 70 2d 3e 70 |NE: {...|.emdp->p|
|00002cc0| 61 72 69 74 79 20 3d 20 | 6e 6f 50 61 72 69 74 79 |arity = |noParity|
|00002cd0| 3b 0d 09 09 09 62 72 65 | 61 6b 3b 0d 09 09 7d 0d |;....bre|ak;...}.|
|00002ce0| 09 09 63 61 73 65 20 50 | 41 52 49 54 59 45 56 45 |..case P|ARITYEVE|
|00002cf0| 4e 3a 20 7b 0d 09 09 09 | 65 6d 64 70 2d 3e 70 61 |N: {....|emdp->pa|
|00002d00| 72 69 74 79 20 3d 20 65 | 76 65 6e 50 61 72 69 74 |rity = e|venParit|
|00002d10| 79 3b 0d 09 09 09 62 72 | 65 61 6b 3b 0d 09 09 7d |y;....br|eak;...}|
|00002d20| 0d 09 09 63 61 73 65 20 | 50 41 52 49 54 59 4f 44 |...case |PARITYOD|
|00002d30| 44 3a 20 7b 0d 09 09 09 | 65 6d 64 70 2d 3e 70 61 |D: {....|emdp->pa|
|00002d40| 72 69 74 79 20 3d 20 6f | 64 64 50 61 72 69 74 79 |rity = o|ddParity|
|00002d50| 3b 0d 09 09 09 62 72 65 | 61 6b 3b 0d 09 09 7d 0d |;....bre|ak;...}.|
|00002d60| 09 09 63 61 73 65 20 53 | 54 4f 50 31 3a 20 7b 0d |..case S|TOP1: {.|
|00002d70| 09 09 09 65 6d 64 70 2d | 3e 73 74 6f 70 20 3d 20 |...emdp-|>stop = |
|00002d80| 73 74 6f 70 31 30 3b 0d | 09 09 09 62 72 65 61 6b |stop10;.|...break|
|00002d90| 3b 0d 09 09 7d 0d 09 09 | 63 61 73 65 20 53 54 4f |;...}...|case STO|
|00002da0| 50 31 48 41 4c 46 3a 20 | 7b 0d 09 09 09 65 6d 64 |P1HALF: |{....emd|
|00002db0| 70 2d 3e 73 74 6f 70 20 | 3d 20 73 74 6f 70 31 35 |p->stop |= stop15|
|00002dc0| 3b 0d 09 09 09 62 72 65 | 61 6b 3b 0d 09 09 7d 0d |;....bre|ak;...}.|
|00002dd0| 09 09 63 61 73 65 20 53 | 54 4f 50 32 3a 20 7b 0d |..case S|TOP2: {.|
|00002de0| 09 09 09 65 6d 64 70 2d | 3e 73 74 6f 70 20 3d 20 |...emdp-|>stop = |
|00002df0| 73 74 6f 70 32 30 3b 0d | 09 09 09 62 72 65 61 6b |stop20;.|...break|
|00002e00| 3b 0d 09 09 7d 0d 09 09 | 64 65 66 61 75 6c 74 3a |;...}...|default:|
|00002e10| 20 7b 0d 09 09 09 72 65 | 74 75 72 6e 28 54 52 55 | {....re|turn(TRU|
|00002e20| 45 29 3b 0d 09 09 7d 0d | 09 7d 0d 09 6b 65 79 64 |E);...}.|.}..keyd|
|00002e30| 70 2d 3e 63 6f 6e 66 63 | 68 61 6e 67 65 64 20 3d |p->confc|hanged =|
|00002e40| 20 54 52 55 45 3b 0d 09 | 73 65 72 6d 65 6e 75 73 | TRUE;..|sermenus|
|00002e50| 65 74 28 29 3b 0d 09 73 | 65 74 75 70 70 6f 72 74 |et();..s|etupport|
|00002e60| 28 29 3b 0d 09 72 65 74 | 75 72 6e 28 46 41 4c 53 |();..ret|urn(FALS|
|00002e70| 45 29 3b 0d 7d 0d 0d 0d | 73 65 72 6d 65 6e 75 73 |E);.}...|sermenus|
|00002e80| 65 74 28 29 0d 7b 0d 09 | 69 6e 74 20 63 6f 75 6e |et().{..|int coun|
|00002e90| 74 3b 0d 0d 09 43 68 65 | 63 6b 49 74 65 6d 28 6d |t;...Che|ckItem(m|
|00002ea0| 65 6e 75 5b 53 45 52 49 | 41 4c 4d 45 4e 55 5d 2c |enu[SERI|ALMENU],|
|00002eb0| 20 53 45 52 41 55 54 4f | 48 41 4e 47 2c 20 65 6d | SERAUTO|HANG, em|
|00002ec0| 64 70 2d 3e 61 75 74 6f | 68 61 6e 67 75 70 20 3f |dp->auto|hangup ?|
|00002ed0| 20 28 42 6f 6f 6c 65 61 | 6e 29 20 54 52 55 45 20 | (Boolea|n) TRUE |
|00002ee0| 3a 20 28 42 6f 6f 6c 65 | 61 6e 29 20 46 41 4c 53 |: (Boole|an) FALS|
|00002ef0| 45 29 3b 0d 0d 09 2f 2a | 20 62 6c 61 6e 6b 20 65 |E);.../*| blank e|
|00002f00| 78 63 6c 75 73 69 76 65 | 20 69 74 65 6d 73 20 6f |xclusive| items o|
|00002f10| 75 74 20 2a 2f 0d 0d 09 | 66 6f 72 20 28 63 6f 75 |ut */...|for (cou|
|00002f20| 6e 74 20 3d 20 42 41 55 | 44 35 37 36 30 30 3b 20 |nt = BAU|D57600; |
|00002f30| 63 6f 75 6e 74 20 3c 3d | 20 53 54 4f 50 31 3b 20 |count <=| STOP1; |
|00002f40| 63 6f 75 6e 74 2b 2b 29 | 20 7b 0d 09 09 43 68 65 |count++)| {...Che|
|00002f50| 63 6b 49 74 65 6d 28 6d | 65 6e 75 5b 53 45 52 49 |ckItem(m|enu[SERI|
|00002f60| 41 4c 4d 45 4e 55 5d 2c | 20 63 6f 75 6e 74 2c 20 |ALMENU],| count, |
|00002f70| 46 41 4c 53 45 29 3b 0d | 09 7d 0d 0d 09 2f 2a 20 |FALSE);.|.}.../* |
|00002f80| 63 68 65 63 6b 20 62 61 | 75 64 20 72 61 74 65 20 |check ba|ud rate |
|00002f90| 2a 2f 0d 09 66 6f 72 20 | 28 63 6f 75 6e 74 20 3d |*/..for |(count =|
|00002fa0| 20 30 3b 20 63 6f 75 6e | 74 20 3c 20 4e 55 4d 42 | 0; coun|t < NUMB|
|00002fb0| 41 55 44 53 3b 20 63 6f | 75 6e 74 2b 2b 29 20 7b |AUDS; co|unt++) {|
|00002fc0| 0d 09 09 69 66 20 28 62 | 61 75 64 72 61 74 65 73 |...if (b|audrates|
|00002fd0| 5b 63 6f 75 6e 74 5d 20 | 3d 3d 20 65 6d 64 70 2d |[count] |== emdp-|
|00002fe0| 3e 62 61 75 64 29 20 7b | 0d 09 09 09 43 68 65 63 |>baud) {|....Chec|
|00002ff0| 6b 49 74 65 6d 28 6d 65 | 6e 75 5b 53 45 52 49 41 |kItem(me|nu[SERIA|
|00003000| 4c 4d 45 4e 55 5d 2c 20 | 63 6f 75 6e 74 20 2b 20 |LMENU], |count + |
|00003010| 42 41 55 44 35 37 36 30 | 30 2c 20 54 52 55 45 29 |BAUD5760|0, TRUE)|
|00003020| 3b 0d 09 09 7d 0d 09 7d | 0d 0d 09 2f 2a 20 63 68 |;...}..}|.../* ch|
|00003030| 65 63 6b 20 64 61 74 61 | 20 62 69 74 73 20 2a 2f |eck data| bits */|
|00003040| 0d 09 66 6f 72 20 28 63 | 6f 75 6e 74 20 3d 20 30 |..for (c|ount = 0|
|00003050| 3b 20 63 6f 75 6e 74 20 | 3c 20 44 41 54 41 49 54 |; count |< DATAIT|
|00003060| 45 4d 53 3b 20 63 6f 75 | 6e 74 2b 2b 29 20 7b 0d |EMS; cou|nt++) {.|
|00003070| 09 09 69 66 20 28 64 61 | 74 61 63 6f 6e 73 74 5b |..if (da|taconst[|
|00003080| 63 6f 75 6e 74 5d 20 3d | 3d 20 65 6d 64 70 2d 3e |count] =|= emdp->|
|00003090| 64 61 74 61 29 20 7b 0d | 09 09 09 43 68 65 63 6b |data) {.|...Check|
|000030a0| 49 74 65 6d 28 6d 65 6e | 75 5b 53 45 52 49 41 4c |Item(men|u[SERIAL|
|000030b0| 4d 45 4e 55 5d 2c 20 63 | 6f 75 6e 74 20 2b 20 44 |MENU], c|ount + D|
|000030c0| 41 54 41 38 2c 20 54 52 | 55 45 29 3b 0d 09 09 09 |ATA8, TR|UE);....|
|000030d0| 62 72 65 61 6b 3b 0d 09 | 09 7d 0d 09 7d 0d 0d 09 |break;..|.}..}...|
|000030e0| 2f 2a 20 63 68 65 63 6b | 20 70 61 72 69 74 79 20 |/* check| parity |
|000030f0| 62 69 74 73 20 2a 2f 0d | 09 66 6f 72 20 28 63 6f |bits */.|.for (co|
|00003100| 75 6e 74 20 3d 20 30 3b | 20 63 6f 75 6e 74 20 3c |unt = 0;| count <|
|00003110| 20 50 41 52 49 54 59 49 | 54 45 4d 53 3b 20 63 6f | PARITYI|TEMS; co|
|00003120| 75 6e 74 2b 2b 29 20 7b | 0d 09 09 69 66 20 28 70 |unt++) {|...if (p|
|00003130| 61 72 69 74 79 63 6f 6e | 73 74 5b 63 6f 75 6e 74 |aritycon|st[count|
|00003140| 5d 20 3d 3d 20 65 6d 64 | 70 2d 3e 70 61 72 69 74 |] == emd|p->parit|
|00003150| 79 29 20 7b 0d 09 09 09 | 43 68 65 63 6b 49 74 65 |y) {....|CheckIte|
|00003160| 6d 28 6d 65 6e 75 5b 53 | 45 52 49 41 4c 4d 45 4e |m(menu[S|ERIALMEN|
|00003170| 55 5d 2c 20 63 6f 75 6e | 74 20 2b 20 50 41 52 49 |U], coun|t + PARI|
|00003180| 54 59 4e 4f 4e 45 2c 20 | 54 52 55 45 29 3b 0d 09 |TYNONE, |TRUE);..|
|00003190| 09 09 62 72 65 61 6b 3b | 0d 09 09 7d 0d 09 7d 0d |..break;|...}..}.|
|000031a0| 0d 09 2f 2a 20 63 68 65 | 63 6b 20 73 74 6f 70 20 |../* che|ck stop |
|000031b0| 62 69 74 73 20 2a 2f 0d | 09 66 6f 72 20 28 63 6f |bits */.|.for (co|
|000031c0| 75 6e 74 20 3d 20 30 3b | 20 63 6f 75 6e 74 20 3c |unt = 0;| count <|
|000031d0| 20 53 54 4f 50 49 54 45 | 4d 53 3b 20 63 6f 75 6e | STOPITE|MS; coun|
|000031e0| 74 2b 2b 29 20 7b 0d 09 | 09 69 66 20 28 73 74 6f |t++) {..|.if (sto|
|000031f0| 70 63 6f 6e 73 74 5b 63 | 6f 75 6e 74 5d 20 3d 3d |pconst[c|ount] ==|
|00003200| 20 65 6d 64 70 2d 3e 73 | 74 6f 70 29 20 7b 0d 09 | emdp->s|top) {..|
|00003210| 09 09 43 68 65 63 6b 49 | 74 65 6d 28 6d 65 6e 75 |..CheckI|tem(menu|
|00003220| 5b 53 45 52 49 41 4c 4d | 45 4e 55 5d 2c 20 63 6f |[SERIALM|ENU], co|
|00003230| 75 6e 74 20 2b 20 53 54 | 4f 50 32 2c 20 54 52 55 |unt + ST|OP2, TRU|
|00003240| 45 29 3b 0d 09 09 09 62 | 72 65 61 6b 3b 0d 09 09 |E);....b|reak;...|
|00003250| 7d 0d 09 7d 0d 7d 0d 0d | 0d 2f 2a 20 68 61 6e 67 |}..}.}..|./* hang|
|00003260| 20 75 70 20 74 68 65 20 | 70 68 6f 6e 65 20 6c 69 | up the |phone li|
|00003270| 6e 65 28 73 29 3b 20 63 | 6c 6f 73 65 20 77 69 6c |ne(s); c|lose wil|
|00003280| 6c 20 63 61 75 73 65 20 | 44 54 52 20 74 6f 20 64 |l cause |DTR to d|
|00003290| 72 6f 70 20 2a 2f 0d 0d | 73 65 72 63 6c 65 61 6e |rop */..|serclean|
|000032a0| 75 70 28 29 0d 7b 0d 09 | 73 68 6f 72 74 20 72 65 |up().{..|short re|
|000032b0| 66 6e 75 6d 3b 0d 09 0d | 09 69 66 20 28 6e 6f 73 |fnum;...|.if (nos|
|000032c0| 65 72 64 29 20 7b 0d 09 | 09 69 66 20 28 6d 6f 64 |erd) {..|.if (mod|
|000032d0| 65 6d 6f 70 65 6e 65 64 | 29 20 7b 0d 09 09 09 4f |emopened|) {....O|
|000032e0| 70 65 6e 44 72 69 76 65 | 72 28 22 5c 50 2e 41 4f |penDrive|r("\P.AO|
|000032f0| 75 74 22 2c 20 26 72 65 | 66 6e 75 6d 29 3b 0d 09 |ut", &re|fnum);..|
|00003300| 09 09 43 6c 6f 73 65 44 | 72 69 76 65 72 28 72 65 |..CloseD|river(re|
|00003310| 66 6e 75 6d 29 3b 0d 09 | 09 7d 0d 09 09 69 66 20 |fnum);..|.}...if |
|00003320| 28 70 72 69 6e 74 6f 70 | 65 6e 65 64 29 20 7b 0d |(printop|ened) {.|
|00003330| 09 09 09 4f 70 65 6e 44 | 72 69 76 65 72 28 22 5c |...OpenD|river("\|
|00003340| 50 2e 42 4f 75 74 22 2c | 20 26 72 65 66 6e 75 6d |P.BOut",| &refnum|
|00003350| 29 3b 0d 09 09 09 43 6c | 6f 73 65 44 72 69 76 65 |);....Cl|oseDrive|
|00003360| 72 28 72 65 66 6e 75 6d | 29 3b 0d 09 09 7d 0d 09 |r(refnum|);...}..|
|00003370| 7d 0d 09 65 6c 73 65 20 | 7b 0d 09 09 69 66 20 28 |}..else |{...if (|
|00003380| 6d 6f 64 65 6d 6f 70 65 | 6e 65 64 29 20 7b 0d 09 |modemope|ned) {..|
|00003390| 09 09 52 41 4d 53 44 4f | 70 65 6e 28 73 50 6f 72 |..RAMSDO|pen(sPor|
|000033a0| 74 41 29 3b 0d 09 09 09 | 52 41 4d 53 44 43 6c 6f |tA);....|RAMSDClo|
|000033b0| 73 65 28 73 50 6f 72 74 | 41 29 3b 0d 09 09 7d 0d |se(sPort|A);...}.|
|000033c0| 09 09 69 66 20 28 70 72 | 69 6e 74 6f 70 65 6e 65 |..if (pr|intopene|
|000033d0| 64 29 20 7b 0d 09 09 09 | 52 41 4d 53 44 4f 70 65 |d) {....|RAMSDOpe|
|000033e0| 6e 28 73 50 6f 72 74 41 | 29 3b 0d 09 09 09 52 41 |n(sPortA|);....RA|
|000033f0| 4d 53 44 43 6c 6f 73 65 | 28 73 50 6f 72 74 42 29 |MSDClose|(sPortB)|
|00003400| 3b 0d 09 09 7d 0d 09 7d | 0d 7d 0d 0d 0d 2f 2a 20 |;...}..}|.}.../* |
|00003410| 68 61 6e 67 75 70 20 74 | 68 65 20 70 68 6f 6e 65 |hangup t|he phone|
|00003420| 20 6c 69 6e 65 20 62 79 | 20 64 72 6f 70 70 69 6e | line by| droppin|
|00003430| 67 20 44 54 52 20 2a 2f | 0d 0d 73 65 72 68 61 6e |g DTR */|..serhan|
|00003440| 67 75 70 28 74 77 70 29 | 0d 73 74 72 75 63 74 20 |gup(twp)|.struct |
|00003450| 77 69 6e 64 73 20 2a 20 | 74 77 70 3b 0d 7b 0d 09 |winds * |twp;.{..|
|00003460| 69 66 20 28 74 77 70 2d | 3e 72 65 66 6f 75 74 29 |if (twp-|>refout)|
|00003470| 20 7b 0d 09 09 43 6f 6e | 74 72 6f 6c 28 74 77 70 | {...Con|trol(twp|
|00003480| 2d 3e 72 65 66 6f 75 74 | 2c 20 31 38 2c 20 28 50 |->refout|, 18, (P|
|00003490| 74 72 29 20 4e 55 4c 4c | 29 3b 0d 09 7d 0d 09 65 |tr) NULL|);..}..e|
|000034a0| 6c 73 65 20 7b 0d 09 09 | 2f 2a 20 64 72 69 76 65 |lse {...|/* drive|
|000034b0| 72 20 69 73 20 63 6c 6f | 73 65 64 2c 20 72 65 6f |r is clo|sed, reo|
|000034c0| 70 65 6e 20 26 20 54 48 | 45 4e 20 68 61 6e 67 20 |pen & TH|EN hang |
|000034d0| 69 74 20 75 70 20 2a 2f | 0d 09 09 67 65 74 63 6f |it up */|...getco|
|000034e0| 6e 74 65 78 74 28 74 77 | 70 29 3b 0d 09 09 6f 70 |ntext(tw|p);...op|
|000034f0| 65 6e 73 65 72 70 6f 72 | 74 28 29 3b 0d 09 09 43 |enserpor|t();...C|
|00003500| 6f 6e 74 72 6f 6c 28 74 | 77 70 2d 3e 72 65 66 6f |ontrol(t|wp->refo|
|00003510| 75 74 2c 20 31 38 2c 20 | 28 50 74 72 29 20 4e 55 |ut, 18, |(Ptr) NU|
|00003520| 4c 4c 29 3b 0d 09 09 63 | 6c 6f 73 65 73 65 72 70 |LL);...c|loseserp|
|00003530| 6f 72 74 28 74 77 70 29 | 3b 0d 09 7d 0d 7d 0d 0d |ort(twp)|;..}.}..|
|00003540| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003550| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003560| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003570| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003580| 00 00 01 00 00 00 01 4c | 00 00 00 4c 00 00 00 32 |.......L|...L...2|
|00003590| 00 00 27 78 07 74 69 6d | 65 72 2e 6f 02 00 00 00 |..'x.tim|er.o....|
|000035a0| 43 4f 42 4a 4d 61 6e 78 | 01 00 03 00 00 80 00 00 |COBJManx|........|
|000035b0| 08 73 65 72 69 61 6c 2e | 63 00 02 00 00 00 50 61 |.serial.|c.....Pa|
|000035c0| 72 74 53 49 54 78 00 00 | 00 00 00 00 00 00 00 01 |rtSITx..|........|
|000035d0| 00 00 50 61 72 74 53 49 | 54 78 00 00 00 00 00 00 |..PartSI|Tx......|
|000035e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000035f0| 00 00 a9 8d 3a 71 00 00 | 00 00 00 00 01 7e 00 00 |....:q..|.....~..|
|00003600| 00 00 0d 00 00 00 27 78 | 07 74 6e 31 33 64 32 33 |......'x|.tn13d23|
|00003610| 02 00 00 00 41 50 50 4c | 33 32 37 38 21 00 02 40 |....APPL|3278!..@|
|00003620| 00 40 00 00 00 00 6d 14 | 00 00 00 00 00 00 00 00 |.@....m.|........|
|00003630| 00 00 00 00 00 03 7c 38 | 00 03 7e 00 a2 8a af fc |......|8|..~.....|
|00003640| a2 8a b0 16 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003650| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003660| 00 00 00 00 00 00 4e 4c | 00 0e 4e 5b 00 02 4e 7d |......NL|..N[..N}|
|00003670| 00 0e 00 00 00 00 00 00 | 00 00 0d 00 00 00 27 78 |........|......'x|
|00003680| 00 00 00 48 00 09 4d 6f | 6e 61 63 6f 00 24 00 21 |...H..Mo|naco.$.!|
|00003690| 00 24 01 f1 00 2f 00 09 | 00 2f 00 21 00 00 00 00 |.$.../..|./.!....|
|000036a0| 00 00 00 00 00 00 00 06 | 00 04 00 27 00 00 01 e1 |........|...'....|
|000036b0| 02 00 00 27 00 00 01 e1 | 02 00 a5 34 87 0d 00 00 |...'....|...4....|
|000036c0| 03 a3 00 00 03 ac 00 00 | 01 a1 01 00 00 00 01 00 |........|........|
|000036d0| 00 00 01 4c 00 00 00 4c | 00 00 00 32 00 1a 84 58 |...L...L|...2...X|
|000036e0| 05 84 00 00 00 1c 00 32 | 00 00 4d 50 53 52 00 00 |.......2|..MPSR..|
|000036f0| 00 0a 03 ed ff ff 00 00 | 00 00 00 1b bb 84 00 00 |........|........|
+--------+-------------------------+-------------------------+--------+--------+